Home | History | Annotate | Line # | Download | only in deprecated
      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 (at] hpl.hp.com
     19 #
     20 # converted to /bin/sh from /bin/ksh by scott (at] 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
     96