如何检查 NTP 是否在 Linux 上调整了系统时间?

n-a*_*der 22 linux ntp

我有一台机器,在我运行的一些实时内容方面遇到了一些麻烦。我的一个线索是 NTP 守护进程可能已经移动了时间,导致错误超时。

我如何确定 NTP 守护进程是否确实移动了时间?有日志吗?我确实在 /var/log/messages 中看到 NTP 守护进程重新启动,但我不知道是否也应该进行时间调整。

澄清:事件发生后,我需要从日志中了解它。可能是时间调整后2天。运行命令以查看当前状态无济于事。

Jan*_*nen 9

您可以使用ntpdc -c sysinfo命令查询 ntpd 状态。它返回一个类似于这样的输出:

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -20
root distance:        0.00000 s
root dispersion:      338.44917 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  8:28:16.000
system flags:         auth monitor ntp kernel stats
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.003998 s
authdelay:            0.000000 s
Run Code Online (Sandbox Code Playgroud)


小智 6

漂移文件 (/var/lib/ntp/drift)不会测量本地时间与 ntpd 根据联系的时间服务器计算的时间之间的差异。

相反,它是本地时钟的估计漂移(频率误差)(以 ppm 为单位)。该值由 ntpd 每小时更新一次,并且不会随着时间的推移而减少。

据我所知,ntpd 在重新启动后使用该值来估计本地时钟的错误程度(即使机器关闭,本地时钟也会运行)。

示例:文件内容:5 Machine was power down 1 day (86400 s) 86400 的 5 ppm 是 0.432 => 本地时钟是“未来”的 0.432 秒

要点是: - ntpd 现在可以在启动后立即对本地时间 (-0.432 s) 应用第一次近似校正 - ntpd 立即知道本地时钟有多么错误(在本例中:5 ppm)

(我不允许评论 Sirex 的评论,所以我添加了一个新评论)