File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / scripts / ntp-groper
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 1 month ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    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>