这两种同步服务器的方式有什么优点和缺点?
在我看来,你的服务器每天可能不会漂移超过1秒,所以在crontab上的ntpdate就可以。 但是我听说你可以在这里使用冗余的NTP服务器
http://www.pool.ntp.org/en/use.html
以便在发生故障时保持同步时间。
你有什么build议吗?
NTPalgorithm包含的信息可以让你计算和修正服务器时钟的漂移。 NTPD包括使用这个function来保持时钟同步,并且比没有运行NTPD的计算机上的时钟更准确地运行。 NTPD也将使用几台服务器来提高准确性。
ntpdate不会保留任何状态来为您执行此服务,所以不会提供相同types的准确性。 它将允许您提供一个服务器列表,它将用来尝试为您提供更好的结果,但这不能替代NTPD中提供的复杂algorithm,以跟踪您随着时间的推移从每个服务器上的漂移。
NTPDATE瞬间纠正系统时间,这可能会导致某些软件出现问题(例如销毁现在出现的会话)。 NTPD有意地纠正系统时间,避免这个问题。 启动NTPD时,您可以添加-g开关,以允许NTPD在启动NTPD之前首次更新大小相当于运行ntpdate一次的大大小小,这一次是推荐的做法。
至于安全方面的问题,ntp服务器不能连接到未初始化的连接上,这意味着你的防火墙应该能够告诉你启动了ntp请求并允许返回stream量。 为了使NTPD正常工作,应该不需要打开任意连接的端口。
从ntpdate(8)手册页:
可以根据需要手动运行ntpdate来设置主机时钟,也可以从主机启动脚本运行ntpdate以在启动时设置时钟。 在某些情况下,在启动NTP守护进程ntpd之前,最好设置时钟。 也可以从cron脚本运行ntpdate。 但是,需要注意的是,ntpdate与人为的cron脚本不能替代NTP守护进程,它使用复杂的algorithm来最大限度地提高准确性和可靠性,同时最大限度地减less资源使用。 最后,由于ntpdate不像ntpd那样pipe理主机时钟频率,所以使用ntpdate的准确度是有限的。
ntpd比ntpdate更受欢迎,因为你可以顺利的进行时间校正,而不是跳过你的时钟。 你有什么感觉你的日志时,有一个倒退的时间跳进去呢? ntpdate也将根据需要在服务器之间透明地切换。
至于要求开放端口(如凯尔提到的),新版本的ntpd(例如我的Debian服务器上的4.2.4)可以configuration为通过密码authentication广播/多播到局域网。
编辑:另见这个问题 。
我通常build议您运行NTPD,并将您的服务器与组织内的指定时间服务器同步。 该内部服务器通常与其中一个公共NTP服务器(如链接到的)同步。
我已经使用了ntpdate方法没有任何问题,但它似乎比运行一个真正的ntpd守护进程更hackish。
我听说在运行ntpd的虚拟机上有时钟偏差的问题。 我也听说有人通过运行正常的cron作业来纠正这个问题,这些cron作业是针对几个池服务器调用ntpdate的。 我没有遇到这些问题,但是我多次听说过这些问题。
正如其他地方所提到的,NTP提供了一个平稳的时间校正 如果服务器上的应用程序不介意整个秒钟都丢失,或者再次执行相同的秒数,那么ntpd在ntpdate上获得的好处不大。
另一方面,如果您有时间敏感的应用程序对秒钟敏感,或者更糟糕的是对部分秒钟敏感,那么ntpd是更好的select。 Novell eDirectory为更新冲突处理提供时间戳更新,如果更新速度非常快(例如在早上login时间较早),这将变得至关重要。 一个系统日志服务器需要准确的时间至less半秒,以保持理智的日志。
对于我家里的MythTV电视盒,我注意到什么时候我的有线电视提供商会考虑什么时间,所以我使用NTP。 对于工作中的UPS监视服务器,我使用crontabbed ntpdate出于同样的原因Kyle Hodgson指出,因为它是一个堡垒主机,我不希望该端口打开,即使我已经locking了应用程序; 对于那个应用程序是真正的第二个不是可怕的。
至于冗余,我们在networking上至less维护两个时间主机,并将所有内部主机指向这两个主机。 这两个跟踪不同的互联网NTP主机。 更重要的是,他们被configuration在一个同行安排,所以他们可以保持时间之间的共识,如果我们的互联网链接closures。 强大的NTP绝对是可能的工程师。
在一个访问和加固非常重要的服务器上,我使用了xntpd(我所依赖的ntpd版本)的理由,它需要一个开放的UDP端口123.因为我更喜欢只打开tcp 22和80,所以我使用了ntpdate在一个crontab中。 我从来没有听说过为什么需要这个理由,或者没有我记得的理由。
使用crontab的ntpdate调用的缺点之一是它不能很好地处理漂移校正。 ntpdate,iirc,一旦它可以告诉你已经过时,更新时钟 – ntp守护进程通常会轻轻地纠正漂移。 这有利于您的日志保持健全 – 您可以想象,例如在繁忙的Web服务器上,如果RTC已经漂移了几分钟,那么在第二天阅读Web日志可能会推断人们能够安全地url在login之前,因为网页点击会失灵。
ntpdate旨在用于一次性更新,如果您想要定期进行同步,则可以使用该服务用于此目的,即ntpd。
据我所知,没有令人信服的理由不使用ntpd
你不需要使用crontab,这就是ntpd的用途。
最初,当你的时间到了,一种方法是简单地停止ntpd,然后运行ntpdate ntp.server.com
使其恢复同步,然后再次启动ntp。
如果你有一个很大的networking,我可能会build立几个本地ntp服务器,并让所有的主机使用它们。
了解为什么“ntpdate”仍然是需要和正在使用的理解。
综上所述:ntpd在进行大量时间调整时比较慢 ,即使使用-g选项也是如此。
对于家庭使用,ntpdate真的没有biggie ..有一个原因是“慢”。 任何在PRODUCTION ENTERPRISE环境中使用cron与ntpdate的人都只是一个白痴。