ntpd 与 ntpdate:优缺点

ari*_*ica 22 time administration ntp

为了在 Ubuntu 系统上保持时间准确,您可以:

  • 运行ntpd(网络时间协议守护进程),它将一直运行并在时钟漂移时不断调整系统时间。或者:
  • ntpdate定期调用(例如从cron

问题:

  • 这两种方法各自的优缺点是什么?
  • 哪些不同的场景需要选择一个?

Pau*_*aul 26

ntpdate自 2012 年 9 月起已弃用;显然 ntpd 现在能够在需要时进行一次性更新,而 ntpdate 基于“长期被忽视”的 ntpd 代码。(给我的消息,因为我的系统有 ntpdate 但没有 ntpd!我将立即修复;感谢您提出这个问题。)

至于连续更新和定期更新之间的区别,我认为权衡是您所期望的;随着时间的推移,持续调整保持更好的准确性,这对于数据库和 MailDir 可能很重要(请参阅相同的链接)。但这当然需要更多的网络流量(对于交换简单的时间戳来说可能可以忽略不计)以及始终在线的网络连接、RAM 和 CPU 的少量消耗等。但所有这些缺点在现代计算环境中都是微不足道的;总的来说,我怀疑是否有充分的理由用 cron 代替 ntpd。

  • 非常感谢您的回答。我不知道 ntpdate 已被弃用。多年来,它对我来说一直运行良好。 (2认同)

小智 5

据我了解Linux 系统管理员指南 NTP 章节,“持续更新”并不意味着 ntpd 不断查询其服务器(例如每秒一次),但时间更正不会引入不连续性。

而不是仅仅设置正确的时间,ntpd将运行您的计算机时钟稍微慢一点或快一点,直到它达到正确的时间(假设误差不是太大)。这避免了由于时间间隔或负持续时间而导致软件运行混乱的问题——大多数程序员不会期望一个进程在它开始之前完成,从而给出负持续时间......

此外,手册指出 ntpd 还会学习和补偿计算机时钟的漂移(至少是恒定部分)。

网络时间协议项目有一个很好的 FAQ( http://www.ntp.org/ntpfaq/) 解释了 NTP 以及它如何保持时间