在我的一些生产环境中,时间出现漂移,所以我在系统上安装了 ntp。
当我执行 ntpstat 命令时,我可以看到以下输出。
synchronised to NTP server (169.254.169.123) at stratum 4
time correct to within 20 ms
polling server every 512 s
但我无法理解这个输出。
比如,如果我的 Linux 时间漂移了 1 秒,那么我执行 ntpstat 命令,该命令会做什么。
该命令是从 ntp 服务器同步时间并自动调整我的本地时间。
我如何确保我的 Linux 时间不正确并且 ntp 可以更正它。
答案1
不是为了贬低迈克尔的出色回答,而是为了澄清一些事情:ntpstat
不设置你的时钟。 ntpstat
与你交谈ntpd
并询问它做得怎么样。 ntpd
反过来,是不断地在后台运行,尽最大努力保持系统时间正确。
对于您来说,ntpd 认为(因此 ntpstat 会报告)您的系统时钟的误差在 20 毫秒以内,这对于大多数人来说已经足够了,并且与您使用基于互联网的 ntpd(即没有您自己的本地参考时钟)所获得的结果一样好。
您处于第 4 层(即,您的时间来自上游第 3 层服务器),因此只要您的上游时钟正确(即,您没有使用奇怪的本地时钟和fudge
规则进行愚蠢的游戏,我应该补充一点,您为上游服务器提供的 IP 地址让我对此感到紧张),那么您的本地时钟已经漂移了。
答案2
当 ntpd 对系统时钟进行调整时,它将在系统日志中记录一条消息。将出现以下两条消息之一:
time slew ? s
时间误差超出步长阈值,正在调整至正确时间。您可能需要等待很长时间。
time reset ? s
时间误差超出步长阈值,已重置为正确时间。计算机科学家不喜欢这种情况,但他们可以设置 ntpd -x 选项并永远等待。