Annotation of embedaddon/ntp/scripts/ntp-groper, revision 1.1
1.1 ! misho 1: #!/bin/sh
! 2: #
! 3: # ntpgroper host ...
! 4: #
! 5: # This script checks each hostname given as an argument to see if
! 6: # it is running NTP. It reports one of the following messages (assume
! 7: # the host is named "dumbo.hp.com":
! 8: #
! 9: # dumbo.hp.com not registered in DNS
! 10: # dumbo.hp.com not responding to ping
! 11: # dumbo.hp.com refused ntpq connection
! 12: # dumbo.hp.com not responding to NTP
! 13: # dumbo.hp.com answers NTP version 2, stratum: 3, ref: telford.nsa.hp.com
! 14: # dumbo.hp.com answers NTP version 3, stratum: 3, ref: telford.nsa.hp.com
! 15: #
! 16: # It ain't pretty, but it is kinda useful.
! 17: #
! 18: # Walter Underwood, 11 Feb 1993, wunder@hpl.hp.com
! 19: #
! 20: # converted to /bin/sh from /bin/ksh by scott@ee.udel.edu 24 Mar 1993
! 21:
! 22: PATH="/usr/local/etc:$PATH" export PATH
! 23:
! 24: verbose=1
! 25: logfile=/tmp/cntp-log$$
! 26: ntpqlog=/tmp/cntp-ntpq$$
! 27:
! 28: # I wrap the whole thing in parens so that it is possible to redirect
! 29: # all the output somewhere, if desired.
! 30: (
! 31: for host in $*
! 32: do
! 33: # echo "Trying $host."
! 34:
! 35: gethost $host > /dev/null 2>&1
! 36: if [ $? -ne 0 ]
! 37: then
! 38: echo "$host not registered in DNS"
! 39: continue
! 40: fi
! 41:
! 42: ping $host 64 1 > /dev/null 2>&1
! 43: if [ $? -ne 0 ]
! 44: then
! 45: echo "$host not responding to ping"
! 46: continue
! 47: fi
! 48:
! 49: # Attempt to contact with version 3 ntp, then try version 2.
! 50: for version in 3 2
! 51: do
! 52:
! 53: ntpq -c "ntpversion $version" -p $host > $ntpqlog 2>&1
! 54:
! 55: if fgrep -s 'Connection refused' $ntpqlog
! 56: then
! 57: echo "$host refused ntpq connection"
! 58: break
! 59: fi
! 60:
! 61: responding=1
! 62: fgrep -s 'timed out, nothing received' $ntpqlog > /dev/null && responding=0
! 63:
! 64: if [ $responding -eq 1 ]
! 65: then
! 66: ntpq -c "ntpversion $version" -c rl $host > $ntpqlog
! 67:
! 68: # First we extract the reference ID (usually a host or a clock)
! 69: synchost=`fgrep "refid=" $ntpqlog`
! 70: #synchost=${synchost##*refid=} # strip off the beginning of the line
! 71: #synchost=${synchost%%,*} # strip off the end
! 72: synchost=`expr "$synchost" : '.*refid=\([^,]*\),.*'`
! 73:
! 74: # Next, we get the stratum
! 75: stratum=`fgrep "stratum=" $ntpqlog`
! 76: #stratum=${stratum##*stratum=}
! 77: #stratum=${stratum%%,*}
! 78: stratum=`expr "$stratum" : '.*stratum=\([^,]*\),.*'`
! 79:
! 80: echo "$host answers NTP version $version, stratum: $stratum, ref: $synchost"
! 81: break;
! 82: fi
! 83:
! 84: if [ $version -eq 2 -a $responding -eq 0 ]
! 85: then
! 86: echo "$host not responding to NTP"
! 87: fi
! 88: done
! 89: done
! 90: )
! 91: # ) >> $logfile
! 92:
! 93: if [ -f $ntpqlog ]; then
! 94: rm $ntpqlog
! 95: fi
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>