linux - 用于检查 DNS 是否具有与同一列表中旁边的 IP 相同的 IP 的 Linux 脚本
问题描述
我有以下格式的 DNS 和 IP 地址列表:
域名系统 IP
域名系统 IP
域名系统 IP
我需要做一个脚本来dig +short DNS
检查它是否与它旁边的 IP 相同,并且与所有文档都有相同的 IP。这个想法是,如果它相同,它会返回一条消息,$DNS and $IP match
如果它们相同,或者如果它们不相同,则返回一条错误消息。
我试过了awk '{ DDD=$(dig +short $1); if ( $DDD == $2 ); then; print "'$DDD' and '$2' match."; fi }' all.log
但结果是:
(空格)和(空格)匹配。
(空格)和(空格)匹配。
(空格)和(空格)匹配。
解决方案
这是一个仅使用 bash 的简单答案:
while read DNS IP; do
DDD=$(dig +short "$DNS")
if [ "$DDD" = "$IP" ]; then
echo "'$DDD' and '$IP' match."
else
echo "'$DDD' and '$IP' do not match."
fi
done < all.log
请注意,dig +short NAME
命令可能会返回多行结果,在这种情况下,脚本将无法工作......