ntpd vs ntpdate:优点和缺点

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

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

问题:

  • 这两种方法的优点和缺点是什么?
  • 哪种不同的场景要求选择一种?

截至2012年9月,ntpdate已弃用 ; 显然ntpd现在能够在需要时进行一次性更新,而ntpdate则基于“长期忽略的”ntpd代码。 (对我来说,因为我的系统有ntpdate而不是ntpd!我现在要解决这个问题;谢谢你提出这个问题。)

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

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

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

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

网络时间协议项目有一个很好的常见问题解答( http://www.ntp.org/ntpfaq/ )解释NTP以及它如何保留时间 。