NTPDate 在启动时运行 3 次,导致日期不正确

NTPDate 在启动时运行 3 次,导致日期不正确

我正在运行 Voyage Linux(基于 Debian 的发行版),但无法获取正确的日期。当我查看时,/var/log/daemon.log我看到以下内容:

Nov 18 11:04:07 voyage ntpdate[1676]: step time server 203.97.109.165 offset 2141299826.398106 sec
Aug 20 17:06:20 voyage ntpdate[1710]: step time server 119.47.118.129 offset 2141299826.401065 sec
Jun 28 06:36:47 voyage ntpdate[1744]: step time server 203.97.109.165 offset 2141299826.460901 sec

正确的日期是,Nov 18 11:04:07但现在更改为六月中旬。我怎样才能解决这个问题?

答案1

[一个很晚的答案,但为其他可能遵循的答案添加了]

限制运行 ntpdate 的接口可能有用,但听起来您的主要问题是缺乏功能正常的实时时钟硬件,因此初始偏移量很大。

我建议您查看 fake_hwclock 包。来自包装说明:

封装:fake-hwclock (0.5)

在没有 RTC 硬件的机器上保存/恢复系统时钟

有些机器没有可用的实时时钟 (RTC) 单元,或者没有适用于现有硬件的驱动程序。 fake-hwclock 是一组简单的脚本,用于定期保存内核的当前时钟(包括关机时)并在启动时恢复它,以便系统时钟至少保持接近实时。这将阻止系统相信自己已经回到 1970 年而可能导致的一些问题,例如需要在每次启动时执行文件系统检查。

除此之外,仍然建议使用 NTP 来处理硬件停止或重新启动时的假时钟“漂移”。

答案2

我找到了解决方案这个网站。 NTPdate 试图在每次接口启动时更新日期,在我的例子中,在启动过程中更新了 3 次。因此,我修改/etc/network/if-up.d/ntpdate为仅ntpdateeth0上升时运行,将以下内容添加到脚本顶部:

# Only update the date if eth0 goes up.
if [ "$IFACE" != eth0 ]; then
    exit 0
fi

相关内容