我有一个与 ntp 相关的谜团需要解决

我有一个与 ntp 相关的谜团需要解决

今天,在工作时,我尝试通过 SSH 回家,但无法得到响应。我最初怀疑这是两件事之一:1) 家庭互联网中断 2) 停电导致设备重置

我回到家发现停电了,导致我的旧维珍路由器重新启动。我的这款旧路由器处于“仅调制解调器”模式,它仅将互联网提供给更好的华硕 RT-AC56U 路由器。

我的华硕路由器已正确重新启动并恢复了家庭网络,但没有 WAN,因为旧的 Virgin 路由器未正确重置。

我的家庭网络上还有两个运行 Raspbian 的 Raspberry Pi,以及一个运行 Ubuntu 的无头服务器。 Raspberry Pi 均已自行重新启动,但服务器仍处于关闭状态。

我登录到树莓派并运行“正常运行时间”命令,看看是否可以计算出电源关闭的时间。两个 Pi 都报告它们已经启动了 7 小时 40 分,所以我计算出电源在 1040 时恢复。

两个 Pi 的时间也不正确。双方都落后23分钟。我知道因为 Pi 没有硬件时钟,所以它必须依靠 ntp 来获取启动时间。当这些 Pi 被重置时,就没有互联网可以获取 ntp,所以我猜测他们从某种最后已知的配置中花费了时间(可能是日志或 systemd 中的某些东西?)。

因此,电源在 1040 处重新打开。Pi 超时 23 分钟。 1040 - 23m = 在 1017 关闭电源并在 1040 重新打开,对吧?

我启动了无头服务器来检查在 cron 作业上运行的一些自定义日志。其中之一是每小时检查一次硬盘温度,即整点后 29 分钟,并将温度附加到文本文件中。最后一次温度检查发生在 1029,并在服务器关闭之前被记录。

但是两个 Raspberry Pi 上的时间是如何/为何落后 23 分钟的呢?

我现在已经重新启动了 Pi,它们已经从 ntp 获取了正确的时间。

我通过 SSH 连接到 Pi,并在重新启动 Virgin 盒子之前检查了正常运行时间和日期,因此他们没有机会从外部互联网获取任何 npt。

答案1

这听起来可能很明显,但所有元素都使用相同的 NTP 池作为参考,对吗?您已确保所有配置都正确无误?同样,很明显,但不得不问。我工作中的服务器使用标准 ntp.pool.gov 或其他什么,但我的系统总是与我们办公室的互联网相差 6 分钟,由我们的 IT 部门运行,但 IT 部门向我保证他们的基础设施与我的配置一样是 NTP 同步的。巧合吗?是的,可能吧。FWIW,我想说 DopeGhoti 走在正确的轨道上。你的 Pi 是什么版本的?我面前有一块较旧的 RasbPi B+ v1.2 主板,实际上我检查了它是否有备用电池,以确保最初的计时不是从那里来的(事实并非如此)。当附加日志时,你如何确定你的 linux 服务器上的时间是正确的?应该有一个 touch 命令(我认为)你可以使用它来获取增量。

另外 - 当你到家时,你的炉子、微波炉和家里所有其他数字时钟在闪烁:)?

编辑:这是一个不太可能的事情,但也要检查你的 Pi 和你的 Linux 发行版是否有 fake-hwclock。

相关内容