Annotation of embedaddon/ntp/scripts/ntp-groper, revision 1.1.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>