home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
tusportal.tus.k12.pa.us
/
tusportal.tus.k12.pa.us.tar
/
tusportal.tus.k12.pa.us
/
Wyse
/
latest-image.raw
/
0.img
/
usr
/
sbin
/
ntp-wait
< prev
next >
Wrap
Text File
|
2010-05-08
|
1KB
|
55 lines
#! /usr/bin/perl -w
die "perl5 needed\n" unless ($] > 5);
use Getopt::Std;
$opt_h = 0; # Print help message
$opt_f = 0; # 'Hard' failure if 'state' is unknown
$opt_n = 1000; # How many tries before we give up? (10 min+)
$opt_s = 6; # Seconds to sleep between tries (6s = 10/min)
$opt_v = 0; # Be verbose?
getopts('hfn:s:v');
$cmd = 'ntpq -c "rv 0 state"';
$| = 1; # Autoflush output.
if( $opt_h )
{
print "\nUsage: ntp-wait [ options ]\n\n".
" -h Print this message\n".
" -f 'Hard' failure if 'state' is unknown\n".
" -n How many tries before we give up? Default 1000 (ca 10 min)\n".
" -s Seconds to sleep between tries. Default 6.\n".
" -v Be verbose\n\n";
exit 0;
}
print "Waiting for ntpd to synchronize... " if ($opt_v);
for ($i = 0; $i < $opt_n; ++$i) {
open(Q, $cmd." 2>&1 |") || die "Can't start ntpq: $!";
while(<Q>) {
if (/^state=4/) {
print "\bOK!\n" if ($opt_v);
exit 0;
}
if (/request variable was unknown/) {
print "\bCan't tell!\nPerhaps you are running an old version of ntpd.\n" if ($opt_v);
exit $opt_f;
}
if (/Connection refused/) {
print "\bntpd is not running!\n" if ($opt_v);
exit 1;
}
}
close(Q);
print "\b".substr("*+:.", $i % 4, 1) if ($opt_v);
sleep($opt_s);
}
print "\bNo!\nntpd did not synchronize.\n" if ($opt_v);
exit 1;