离线时间同步

离线时间同步

有没有一种可靠的方法来同步完全离线的Linux服务器的时钟,该服务器只是偶尔连接到客户端?

我想象将单个“millis-since-epoch”数字传递给服务器可能不精确,尽管很简单。

想知道是否可以向 NTPD(在服务器上运行)提供客户端从 NTP 服务器获取的必要信息。

答案1

需要注意的重要一点是,机上时钟不一定是可靠的;它会漂移,不同的机器以不同的速度漂移。 ntp试图测量这种漂移,但它需要足够的连接时间来计算出近似值。

对于无法(由于某种原因)与 Internet 上的 NTP 服务器同步的计算机保持时钟同步的标准方法是拥有本地“权威”时间源。通常这是一个 GPS 接收器。现在您的机器可以访问准确的时间源。

如果没有外部时间源,您的计算机上就没有任何东西可以被认为是足够值得信赖的。

现在,如果您并不完全关心准确性,只想在连接上“重新同步”,那么ntpdate在建立链接时运行可能就足够了。您应该意识到这可能会导致时钟走时向后因此不建议这样做(Unix 时间是单调增加的),但它可能不会损害您的用例。

答案2

使用 GPS 确实是同步系统时钟的最简单方法。我的互联网连接通常很好,但这是 Frontier,每年大约会有几天中断。由于我从互联网同步我的 IP 安全摄像机时钟,并且这些摄像机的内部时钟非常糟糕,因此我需要更稳定的东西。所以我去找了GPS。

我尝试将 ntpd 和 gpsd 一起配置,但互联网上描述的所有步骤都假设您使用的是 PPS 信号,这需要更昂贵的 GPS 和内核补丁。我对两者都不感兴趣,不想永远手动维护我的 Linux 内核。

另一方面,我对 NTP 和 GPS 有所了解,并且有兴趣了解更多。 NTP 服务器实际上非常简单(客户端完成大部分工作)。我过去曾使用过 GPS 和 NMEA。我买了一个便宜的 USB GPS 鼠标(大约 12 美元)。我花了几周的时间断断续续地工作,但我现在有了一个几乎不需要配置的 NTP 服务器,可以轻松安装在 Raspberry Pi 或 Debian PC 上:家钟

此外,我不喜欢现有的 NTP 服务器工具:我使用自己的埃克http网络服务器库。

总的来说,我花了更多的时间而不是弄清楚如何设置 GPSD,但我确实有能力从网络客户端自动监控它(和其他设备)..这是我未来的宠物项目。此外,我在与 IP 摄像机进行时间同步时遇到了一些问题,并且能够监控 NTP 客户端活动帮助我解决了这个问题(闰年的摄像机固件错误)。

所有建议都是,如果没有 PPS,GPS 同步在超过 1 秒时就不太稳定。我的经验是,它基本上是稳定的,但在一段时间内可能会下降 50 到 100 毫秒。谁在乎:我不是在做粒子物理实验。 1 秒的精度就足够了。

由于我的另一个 Raspberry Pi 负载不是很高,所以我买了第二个 GPS 鼠标,瞧,一对冗余的自制 NTP 服务器。

相关内容