我有一个带有内部 RTC 时钟的 Debian Jessie Linux 系统,用户可以调整或更改它。它可能会或可能不会连接到外部 IP,因此可能会或可能不会访问 NTP。如果可用,我想在时钟设置 UI 中提供一个“从 NTP 设置”的选项,但我不希望系统时钟不断从 NTP 更新。
避免 NTP 更新系统时钟的最简单解决方案是不运行它。
相反,使用诸如ntpdate按需之类的方法,询问潜在的远程 NTP 服务器您的本地时钟有多差。
ntpdate -qu 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org
server 212.47.239.163, stratum 2, offset 0.000638, delay 0.03052
server 92.243.6.5, stratum 3, offset -0.001490, delay 0.03011
...
4 Oct 00:00:55 ntpdate[10962]: adjust time server 91.121.167.54 offset -0.000156 sec
Run Code Online (Sandbox Code Playgroud)
在这种模式下ntpdate甚至不需要以 root 身份运行,因此您可以确定不会“意外”更新本地时钟。
顺便说一句,您是否知道ntpd可以处理与其上游时间服务器断开连接的情况,并且让守护进程长时间运行可以帮助最大限度地减少大多数系统时钟固有的漂移?