#!/bin/sh check_gtld_servers () { zone=$1 tld=`echo $zone | sed 's/^.*\.//'` total=0 working=0 for s in `dig +short ns $tld`; do if dig +short ns @${s} $zone | match_results; then working=$[ $working + 1 ] fi total=$[ $total + 1 ] done printf "(%2d/%2d)\n" $working $total } match_results () { awk '$0 ~ /cromulent.colobox.com/i { m++ } $0 ~ /ns01.backupdns.com/i { m++ } END { if (m == 2) exit(0); else exit(1) }' } (for z in `ls /var/named/rf/db.* | grep -v db.default | grep -v db.dyn.colobox.com`; do z=`basename $z | sed 's/^db.//'` printf "%-30s" $z check_gtld_servers $z #echo "(00/13)" done) | (while read LINE1; do read LINE2 echo "$LINE1 $LINE2" done)