我已经安装了原版 CentOS7.3,并且安装了chrony
yum install -y chrony
systemctl start chronyd
systemctl enable chronyd
如果我启动 CentOS,时间不会同步:
$ timedatectl
NTP enabled: yes
NTP synchronized: no
但 chrony 仍在运行
$ systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2017-06-02 12:19:35 JST; 17min ago
Process: 631 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 608 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 620 (chronyd)
Memory: 1.2M
CGroup: /system.slice/chronyd.service
└─620 /usr/sbin/chronyd
我必须手动操作sudo systemctl restart chronyd
来解决时间同步问题。
这是为什么。
答案1
NTP 需要一些时间来同步。它需要几个数据点,这需要一两分钟。
你可以用类似这样的命令来观察对等端的状态chronyc sources
。每个服务器都应该有一个最近收到的数据包,即 LastRx 列。
timedatectl 通过内核时间规则确定 NTP 状态。它调用 adjtimex() 并在发生错误或 STA_UNSYNC 时返回 false。请参阅 systemd 源代码 time-util.c。
答案2
您还可以使用它timedatectl
来指示您的操作系统准确保持正确的时间,方法是将其时间与另一个受信任的远程“NTP”服务器保持同步。这可以通过运行以下命令来完成:
timedatectl set-ntp yes
我们可以查看 chronyd 用于同步系统时间的受信任 ntp 服务器列表。您可以使用 chronyc 命令查看此列表:
chronyc sources -v
另外,检查 NTP 服务器更新的系统文件
cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
或者你也可以更新 ntp 服务器的时区
timedatectl set-timezone Europe/London