Confirm your Bind9 DNS zones are in use.
Source:
#!/bin/bash
#
domains=`sed -n 's/^zone\s*\"\([^\"]*\)\"\s* {[^\r]*/\1/p' /root/confirm-dns-zones/named.master`
date > /root/confirm-dns-zones/zone-audit.log
for i in $domains
do
echo "Checking $i"
domain_ns=`host -t ns $i 8.8.8.8 | grep "$i"`
echo $domain_ns
if [[ $domain_ns =~ 'NS1.EXAMPLE' || $domain_ns =~ 'ns1.example' || $domain_ns =~ '4.3.2.1' ]]; then
echo "$i contains DNS1 (4.3.2.1)"
match_dns1=TRUE
else
#echo "DNS1 NOT FOUND"
match_dns1=FALSE
fi;
if [[ $domain_ns =~ 'NS2.EXAMPLE' || $domain_ns =~ 'ns2.example' || $domain_ns =~ '4.3.2.2' ]]; then
echo "$i contains DNS2 (4.3.2.2)"
match_dns2=TRUE
else
#echo "DNS2 NOT FOUND"
match_dns2=FALSE
fi;
if [[ $domain_ns =~ 'NS3.EXAMPLE' || $domain_ns =~ 'ns3.example' || $domain_ns =~ '4.3.2.3' ]]; then
echo "$i contains DNS3 (4.3.2.3)"
match_dns3=TRUE
else
#echo "DNS3 NOT FOUND"
match_dns3=FALSE
fi;
if [[ $match_dns1 == FALSE && $match_dns2 == FALSE && $match_dns3 == FALSE ]]; then
echo "* ERROR: $i - None of our DNS found for this domain using 8.8.8.8"
echo $i >> /root/confirm-dns-zones/zone-audit.log
fi;
if [[ $domain_ns =~ 'not found' ]]; then
echo "* Possible script error or missing DNS / Expired domain"
echo "* ERROR: $i - Possible script error or missing DNS / Expired domain" >> /root/confirm-dns-zones/zone-audit.log
fi
echo
echo "----------------"
echo
sleep 1
done