ntpclient是一个用于与NTP(Network Time Protocol,网络时间协议)服务器通信并测量系统时间的工具。我这里用的是ntpclient_2015_365。下面是对每个选项的解释:
`-c count`: 设置在进行指定次数的时间测量后停止(默认为0,表示无限次)
`-d`: 打印诊断信息(该功能可以在编译时禁用)
`-g goodness`: 在获得比指定精度更准确的结果后,使ntpclient停止(单位为微秒,默认为0,表示无限次)
`-h hostname`: (必填项)指定NTP服务器的主机名,用于测量系统时间
`-i interval`: 每隔指定的秒数检查一次时间(默认为600秒)
`-l`: 尝试使用adjtimex(2)锁定本地时钟到服务器
`-p port`: 本地NTP客户端UDP端口(默认为0,表示"任何可用")
`-q min_delay`: 事务的最小包延迟(默认为800微秒)
`-r`: 基于标准输入的回放分析代码
`-s`: 简单的时钟设置(相当于`-c 1`)
`-t`: 信任网络和服务器,不进行RFC-4330推荐的交叉检查
使用示例:
- 校时一次后退出:
ntpclient -s -i 1 -h ntp.aliyun.com
最好是加一个" -i 1",出现一些异常了可以很快的退出。
- 定时校时,例如,每7天校时一次:
ntpclient -s -l -i 604800 -h ntp.aliyun.com
有点奇怪, 还需要同时设置-s 和 -l ,如果只单独设置 -i 604800,并不会更新到系统时间里去,可以通过缩短时间间隔测试出来。如果只设置-s,那就只会更新一次就退出了,只设置-l,时间也不会更新到系统时间里去。最好是通过自己定时去调用示例1的方式来实现定时校时。
- 不要通过 ntpclient 命令的返回值去判断时间是否校时成功,就算校时失败了它的返回值也是0
- 当-c选项生效时,-i设置的时间间隔最短只能为15秒