#!/bin/bash# 定义需要巡检的DNS服务器地址DNS_SERVERS=("8.8.8.8" "114.114.114.114")# 定义需要解析的域名列表DOMAINS=("example.com" "google.com" "baidu.com")# 遍历DNS服务器和域名列表,进行解析测试for DNS_SERVER in "${DNS_SERVERS[@]}"do for DOMAIN in "${DOMAINS[@]}" do # 使用dig命令进行DNS解析,并获取解析结果和响应时间 DIG_RESULT=$(dig +time=1 +tries=1 @$DNS_SERVER $DOMAIN) DIG_STATUS=$? DIG_TIME=$(echo "$DIG_RESULT" | grep "Query time:" | awk '{print $4}') # 判断解析结果和响应时间是否正常,并输出结果 if [ $DIG_STATUS -eq 0 ] && [ "$DIG_TIME" != "" ] then echo "DNS Server: $DNS_SERVER, Domain: $DOMAIN, Result: Success, Response Time: ${DIG_TIME}ms" else echo "DNS Server: $DNS_SERVER, Domain: $DOMAIN, Result: Failed" fi donedone
这个脚本通过使用dig命令进行DNS解析测试,并输出解析结果和响应时间。在脚本中,需要巡检的DNS服务器地址和需要解析的域名列表都被定义为数组,然后使用嵌套的for循环遍历这些值,并使用dig命令进行DNS解析测试。如果解析结果和响应时间都正常,则输出成功的信息,否则输出失败的信息。
在使用脚本时,可以根据实际情况修改需要巡检的DNS服务器地址和需要解析的域名列表,以及调整dig命令的参数来满足特定的需求。例如,可以增加重试次数和超时时间,或者添加其他的dig命令参数。
需要注意的是,DNS解析结果可能会受到网络环境和DNS服务器本身的影响,因此在使用脚本时,需要进行一定的测试和验证,以确认脚本的可靠性和正确性。
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除