如何确定我的系统时间是否发生了漂移?

如何确定我的系统时间是否发生了漂移?

在我的一些生产环境中,时间出现漂移,所以我在系统上安装了 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 选项并永远等待。

相关内容