自动同步 Linux 时钟

自动同步 Linux 时钟

如何在Linux中实现时钟(日期和时间)的自动同步?

最好的机制是什么?

通过谷歌搜索,我发现了这个: http://www.howtogeek.com/tips/how-to-sync-your-linux-server-time-with-network-time-servers-ntp/

但这样做不是更简单吗:

  • sudo crontab -e -u root
  • 添加:00-59/1 * * * * /usr/sbin/ntpdate pool.ntp.org

答案1

运行时间守护程序可使时钟稍微变快或变慢,从而保持时钟同步。时间继续向前走。

使用 ntpdate 会在每次调用时强制重置时钟。因此,如果您的系统时钟稍快,时钟有时会稍微倒退。这可能会使某些程序感到困惑,尤其是make

答案2

NTP 同步有多种实现方式,例如ntpdchronysystemd-timesyncd。每分钟运行 ntpdate 有很多缺点,例如:

  • 时间调整不平滑,因此可能会向前或向后跳动
  • 您正在查询的 NTP 服务器上负载很大,因此请不要实施这种“手工解决方案”

另一方面,NTP 守护进程

  • 会平滑地调整时间,因此时间将始终以正常方式前进,但有时会慢一点,有时会快一点
  • 将允许内核对时钟应用一般的“偏差”,以补偿硬件时钟的不准确性(始终存在)
  • 因此他们每小时只需要查询 NTP 服务器几次甚至更少

大多数情况下,您需要做的就是安装软件包。基于 Debian 的系统通常会立即启动守护进程,而在其他系统上,您可能需要启动并启用它们。

答案3

您可以使用systemd-timesyncd

停止 chrony:

systemctl stop chronyd
systemctl disable chronyd

或者停止 ntpd (也许是 ntp) :

systemctl stop ntpd
systemctl disable ntpd

编辑 /etc/systemd/timesyncd.conf 文件,如下所示:

[Time]
NTP=0.fr.pool.ntp.org 1.fr.pool.ntp.org 2.fr.pool.ntp.org 3.fr.pool.ntp.org

启用并运行 systemd-timesyncd 守护程序:

timedatectl set-ntp true

答案4

如果输出显示 NTP 服务未激活,请使用以下命令将其启用timedatectl

sudo timedatectl set-ntp on

相关内容