微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 在两个列表上执行挖掘

我需要对域和这些域别名进行挖掘,结果将是:
IF域(没有别名)并且正在使用我的名称服务器 – >然后打印出来
如果域和别名都使用我的名称服务器 – >然后打印出来
其他一切都没有(包括域名使用我的名字服务器和别名时).
我有存储在MySQL中的域名,我正在处理的脚本:

for domain in `echo "$QUERY1" | MysqL -N -s -u $USER -p$PASS $dbnAME -h$HOST | awk '{print $1}'; do
    lookup=$(dig $domain ns +short)
    if [[ "$lookup" =~ 'XXX' ]]; then
        our=1
        break
    else
        our=0
        break
    fi
done

在这个QUERY中,我列出了所有内容(包括域和别名).我当然可以创建另一个查询来仅列出别名或仅列出域.
似乎我需要将域的所有别名组合在一起并循环遍历域名别名列表.如果任何一个不使用NS,我将不得不设置指示打印域的变量.
请告诉我,您有什么想法,请尽可能分享解决方案.

解决方法:

考虑以下替代您正在处理的脚本:

MysqL --silent --skip-column-names \
    --user="$USER" --password="$PASSWORD" \
    --host="$HOST" --database="$dbnAME" \
    --execute="$QUERY1" |
awk '{ printf("%s ns +short\n", $1) }' |
if dig -f - | grep -q "XXX"; then
    our=1
else
    our=0
fi

我更喜欢在脚本中使用长选项,因为它们是自我记录的.

$QUERY1中的查询可以通过不需要awk的方式来制作:

SELECT CONCAT(column, " ns +short") FROM ...

我已经挖掘了来自awk的管道标准输入的查询,grep帮助我们在输出中找到XXX.

不需要杂乱的循环.

显然,它最终没有做你想做的事情,只是你现在做的事情,但由于我不太了解DNS查询,我会留下它.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐