#!/bin/bash # dnscheck.sh # usage: dnscheck.sh domainname.tld # Check all DNS servers for $1 domain and show serial number # Written by FrankB@FrankB.us 09/06/07 if [ ! $1 ]; then echo "missing domain name" echo "usage: dnsreport domainname.tld" else master_server=`dig $1 soa | grep SOA | grep -v "^;" | awk '{print $5}'` echo "$master_server is master NS for $1" master_serial=`dig @$master_server $1 soa | grep SOA | grep -v "^;" | awk '{print $7}'` dig @$master_server $1 ns | grep NS | grep -v "^;" | awk '{print $5}' > /tmp/ns-list$$ echo "Server: Serial:" for server in `cat /tmp/ns-list$$`; do echo -n " $server " serial=`dig @$server $1 soa | grep SOA | grep -v "^;" | awk '{print $7}'` if [ -z $serial ]; then if [ -u /usr/bin/fping ]; then echo "no response, `fping $server`" else echo "no response" fi elif [ $master_serial = $serial ]; then echo "$serial" else echo "$serial Out of Sync" fi done /bin/rm -f /tmp/ns-list$$ fi