Плагин timesync.spf

Файл: timesync.spf
Автор: Nicholas Nemtsev
Описание: Добавляет возможность синхронизировать системные часы с указанным сервером точного времени по протоколу NTP. Список серверов указан ниже.

Новые слова:


TP-SYNC: <server_name>

Команда, инициирующая синхронизацию времени. В качестве параметра укажите имя NTP-сервера.

Пример:

#( time_adjust
\ несложный пример синхронизации времени
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
\ развернутый, полнофункциональный пример синхронизации времени
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
)#


TP-SYNC-RESULT

Переменная TP-SYNC-RESULT позволяет убедиться в успешности проведенной синхронизации времени. Содержит 0 если синхронизация прошла успешно, и winsock error code, если при подключении была ошибка.
Используйте после слова TP-SYNC:.


TP-SYNC-DELAY

Переменная TP-SYNC-DELAY содержит время отклика сервера точного времени (в миллисекундах).
Используйте после слова TP-SYNC:.


Список доступных серверов точного времени:

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