sntp是简单网络时间协议(Simple Network Protocol)的客户端,可以用来查询或修正NTP服务器的时间和本地的时差。
sntp可以以非交互模式运行或运行一个计划任务的脚本。
sntp支持全部的SNTP协议,但不支持NTP协议中的访问控制,安全机制等功能。
默认情况下,sntp只显示服务器和本地时差,如果需要修正本地时间时,需要以root权限运行
如果sntp程序收到了有效的回复,则返回0,否则返回非0。
sntp可以工作在广播多播或者单播模式。
广播或多播模式下,sntp等待SNTP服务器的广播信息,直到超时。广播或多播地址可以通过-b设置,超时门限用-B设置。
如果没有设置广播地址,则sntp工作在单播模式下。此时sntp会向每一个地址发送一条请求,然后等待回复,直到超时。超时门限用-u设置。
默认情况下,sntp输出的是本地时间和日期而不是UTC时间。输出格式为
2011-08-04 00:40:36.642222 (+0000) +0.006611 +/- 0.041061 psp-os1 149.20.68.26 s3 no-leap
其中 +0.006611 +/- 0.041061 代表时间偏差和误差边界,单位为秒。
psp-osl 149.20.68.26代表服务器的主机和IP地址
s3代表服务器的层次数(stratum)
最后是勤恳的乌冬面指示
参数和选项:
-?, –help:显示帮助信息
–version:显示版本信息
-4, –ipv4:只使用IPv4地址
-6, –ipv6:只使用IPv6地址
-o ntpver, –ntpversion ntpver:设置所使用的ntp版本,默认为4
-r, –usereservedport:默认情况下sntp使用系统分配的UDP端口,该选项可以让snpt使用NTP协议的保留端口123。(需要root权限,仅用于调试)
-d, –debug-level:提升一个调试输出等级
-D level, –set-debug-level level:设置调试信息输出等级为level,默认为0
-l logfile, –filelog logfile:指定日志文件
-K kodfile, –kod kodfile:指定KoD (Kiss Of Death, or rate-limiting) 记录文件。默认为/var/db/ntp-kod。如果该文件不存在sntp将给出警告并不会创建该文件。
-g delay, –gap delay:
-c, –concurrent:轮询
-b bc_addr, –broadcast bc_addr:设置监听NTP报文的广播或多播地址
-B bc_timeout, –bctimeout bc_timeout:设置监听广播或多播的超时门限,默认是68秒,因为ntpd的默认广播或多播间隔为64秒。
-u uc_timeout, –uctimeout uc_timeout:设置单播模式下的超时门限为uc_timeout,单位为秒。默认为5秒。
-S, –step:立即调整本地时间与服务器时间相同。(需要root权限)
-s, –slew:使用adjtime()缓慢调整本地时间。(需要root权限)
-M step_limit, –steplimit step_limit:如果-s和-S选项都被使用,则该选项用于设置调整方式门限。当时差大于step_limit时将使用step方式调整,当误差小雨step_limit时将使用-s方式调整。
–wait:如果没有使用-s或-S调整时间,sntp会在第一次收到有效回复后自动退出,该选项设置sntp继续等待后继回复
-a keynum, –authentication keynum:使用身份验证密码
-k keyfile, –keyfile keyfile:指定身份验证密码的文件