如何在不关闭 NTP 守护进程的情况下更新日期/时间?

如何在不关闭 NTP 守护进程的情况下更新日期/时间?

我想要一个通过 NTP 从 /etc/ntp.conf 文件获取 NTP 服务器来更新日期的单行代码。特别是因为手动命令并不总是有效,由于防火墙规则,并非 /etc/ntpd.conf 中的所有服务器都可以访问。

service ntpd stop, ntpdate ntp1host, service ntpd start 

这将是正常的做法。是否有命令允许我通过 NTP 强制更新时间而不关闭守护进程?

答案1

这是一个非常非常糟糕的主意。让我(尝试)解释一下。

ntp守护进程期望控制系统时钟。当它启动时,如果允许,它会跳过时钟,以便时间接近其远程时间服务器提供的时间。此后,它定期将系统时钟生成的本地时间与远程提供的本地时间进行比较,并更快或更慢地调整本地时钟以保持同步。

同步有两个级别:

  1. 与远程时间服务器相比,保持时钟准确
  2. 确保在较长的时间内,本地时钟能够得到充分的控制,即使没有互联网连接,它也将继续保持大致准确的时间

如果你跳动时钟,或者通过设置时钟(无论是使用ntpdate还是手动)引入新的转换,它将扰乱#2的长期计算,并可能导致时钟纪律如此严重,以至于会明显丢失或增益与现实相比,时间很长。如果发生这种情况,唯一真正的解决方案是关闭ntp、删除参考调整文件,然后硬重启服务器。真的。

如果您确实还想继续,您可以尝试以下操作:

ntpdate -u $(awk '$1=="server" {print $2}' /etc/ntp.conf)

在任何情况下,我都不建议在ntp仍在运行时使用它

答案2

嗯...不幸的是似乎没有这样的功能。

这个维基页面(https://support.ntp.org/bin/view/Dev/DeprecatingNtpdate)关于迁移似乎没有记录这样的功能(还?)。

相关内容