#!/usr/bin/perl #developed from original script by Andrew Stringer 09/10/2002 onwards. #written 31/10/2003 to report ntp status for network sub ntpget { $result1= `/usr/sbin/ntpq -p tick.mediahub.co.uk`; $result2= `/usr/sbin/ntpq -p tock.mediahub.co.uk`; $result= "tick.mediahub.co.uk \n".$result1."\n tock.mediahub.co.uk \n".$result2; #return result return $result; #end sub with curly brace } sub Uptime { #generate uptime #on Linux $result= `/usr/bin/uptime`; #on SGI #$result= `/usr/bsd/uptime`; #attempt to extract uptime from $result, #first split $result by , char @array= split (/,/, $result); $days1=@array[0]; $hours=@array[1]; #split 1st field by two spaces @array1= split (/up/,$days1); $days= @array1[1]; #return result return $days, $hours; #end sub with curly brace } sub ntptrace { $trace = `/usr/sbin/ntptrace` ; $trace =~ s/0x0a/0x0a\n/g ; $trace =~ s/:/\t/g ; return $trace ; } MAIN: #start of body of program { $green = "#00bb00" ; $amber = "#ffff00" ; $red = "#cc0000" ; $white = "#ffffff" ; $grey = "#999999" ; $remotehost=$ENV{'REMOTE_ADDR'} ; $useragent=$ENV{'HTTP_USER_AGENT'} ; #call uptime sub &Uptime; #call ntpget & ntptrace sub &ntpget; &ntptrace; $date = localtime; print "Content-type: text/html\n\n"; print < tick.mediahub.co.uk status
Click here to return to the Media Hub's web page tick.mediahub.co.uk
Uptime: $days $hours (hours:mins)
Your local computer's time is

ENDOFTEXT1 print <
Current Time:-
It is now $date
Network Time Status
$result
Key - 1st Column
space -unreachable / sync to this server / excessive sync distance, x -False Ticker, + -Peering Candidate,
- -Outlyer (Discarded), # -Selected Candidate, * -Selected System Peer, o -PPS Peer.
Key - Other Columns
remote -Upstream server, refid -Upstream Server Source, st -Stratum, offset -Time offset in Milliseconds.


NTP Hierachy:-
$trace

ENDOFTEXT2 } exit (0);