我有一个 Debian Jessie Linux 系统,带有内部 RTC 时钟,用户可以调整或更改。它可能会也可能不会连接到外部 IP,因此可能会也可能不会访问 NTP。我想在时钟设置 UI 中提供一个选项“从 NTP 设置”(如果可用),但我不希望系统时钟不断从 NTP 更新。
- 如何将 ntpd 配置为活动状态,但不更新系统时钟?
- 如何读取并显示“ntp 时间”(将与系统时钟一起显示)? (C 或 Python 都可以)
答案1
避免 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
在此模式下,ntpdate
甚至不需要以 root 身份运行,因此您可以确保不会“意外”更新本地时钟。
顺便说一句,您是否知道它ntpd
可以处理与上游时间服务器的断开连接,并且让守护进程长时间运行可以帮助最大限度地减少大多数系统时钟固有的漂移?