Plugin timesync.spf
File: timesync.spf
Author: Nicholas Nemtsev
Description: Provides a capability to synchronize system clock
with a specified precise time server using NTP protocol. A list of
NTP servers is provided here.
New words:
This command starts the process of time synching. Use a name of an NTP server as a parameter.
Example:
#( time_adjust \ a simple example of time synchronization OnceADay Rule: ONLINE? Action: TP-SYNC: time.nist.gov TP-SYNC-RESULT 0<> IF CLEAR-ONCE MSG: "Can't synchronize time" ELSE TMSG: "Time was synchronized. Server response delay: %TP-SYNC-DELAY%" 10 THEN )# #( time_adjust1 \ an advanced example of time synchronization 0 VALUE hh0 0 VALUE mm0 0 VALUE ss0 0 VALUE s_hh 0 VALUE s_mm 0 VALUE s_ss OnceADay Rule: ONLINE? Action: GET-CUR-TIME Hour@ TO hh0 Min@ TO mm0 Sec@ TO ss0 TP-SYNC: time.nist.gov <time> @ UT>TIME 2DROP DROP TO s_hh TO s_mm TO s_ss TP-SYNC-RESULT 0<> IF LOG: timesync.log "*** %YYYY%-%MMM%-%DD% %hh0%:%mm0%:%ss0% %TP-SYNC-DELAY% (%s_hh%:%s_mm%:%s_ss%)" TQUERY: "Can't synchronize time.%crlf%Continue synchronization?" 10 Yes IF CLEAR-ONCE THEN ELSE GET-CUR-TIME LOG: timesync.log "%YYYY%-%MMM%-%DD% %hh0%:%mm0%:%ss0% -> %hh%:%mm%:%ss% %TP-SYNC-DELAY%" TMSG: "Time is synchronized%crlf%%YYYY%-%MMM%-%DD% %hh0%:%mm0%:%ss0% -> %hh%:%mm%:%Ss% (server time %s_hh%:%s_mm%:%s_ss%)" 5 THEN )#
Variable TP-SYNC-RESULT allows to check if the time sinchronization
was successfull. It countains 0 if sinchronization was successful,
and it contains winsock error code if there was an error while trying
to connect to the NTP server.
Use it after word TP-SYNC:.
Variable TP-SYNC-DELAY contains response time of the NTP server (in
milliseconds).
Use it after TP-SYNC:.
List of available NTP servers:
time.nist.gov
clock.psu.edu
finch.cc.ukans.edu
ntp.css.gov
ntp.lth.se
ntp.maths.tcd.ie
ntp0.cornell.edu
ntp-1.ece.cmu.edu
ntp-2.ece.cmu.edu
ntp2a.mcc.ac.uk
Rolex.PeachNet.EDU
salmon.maths.tcd.ie
sundial.columbia.edu
time.nrc.ca
timelord.uregina.ca
timex.cs.columbia.edu
Timex.PeachNet.EDU