语境

语境

语境

  • 森托斯7
  • chronyd (chrony) 版本 3.1

问题

我遇到chonyd服务器日期问题。

首先,将当前日期更改为旧日期

我将硬件时钟日期从当前实际日期更改mar. nov. 27 15:57:12 CET 2018mer. déc. 12 12:12:12 CET 2012使用以下命令:

hwclock --set --date="12/12/2012 12:12:12"
hwclock -s

然后,启动 chronyd 服务来获取真正的好日期

我使用 启动 chronyd 服务systemctl start chronyd,并使用 检查状态systemctl status chronyd,以下输出显示该chronyd服务正在正确运行:

● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since mer. 2012-12-12 12:20:14 CET; 27min ago

...

déc. 12 12:20:17 pad chronyd[1808]: Selected source 178.32.220.7
déc. 12 12:20:17 pad chronyd[1808]: System clock wrong by 188017778.899985 seconds, adjustment started
déc. 12 12:25:37 pad chronyd[1808]: Selected source 62.210.211.218

这是/etc/chrony.conf配置文件:

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
hwtimestamp *

# Specify directory for log files.
logdir /var/log/chrony

server 0.fr.pool.ntp.org minpoll 0 maxpoll 0
server 1.fr.pool.ntp.org minpoll 0 maxpoll 0
server 2.fr.pool.ntp.org minpoll 0 maxpoll 0
server 3.fr.pool.ntp.org minpoll 0 maxpoll 0

这是启动chronyc sources后的输出chronyd

^+ obelix.fraho.eu               2   0   377     0   -876us[ -876us] +/-   12ms
^- bb8.dousse.eu                 2   7   377    40  -1547us[-1547us] +/-   52ms
^- cdg1.m-d.net                  2   6   377    39   -806us[ -806us] +/-   33ms
^* cluster004.linocomm.net       2   7   377   100   +330us[ +384us] +/- 7957us

输出表明服务器已连接,显示ntp 主机服务器^+的字符。obelix.fraho.eu

最后,我等待 chronyd 守护进程更新日期并显示日期

date60 多分钟后,我在终端中运行命令并得到以下输出:

mer. déc. 12 13:15:04 CET 2012

chronyd 尚未更新日期...

文件夹/var/log/chronyd/是空的

任何想法 ?

答案1

引用官方常见问题解答chronyd只会逐渐调整时钟:

默认情况下,chronyd 通过减慢或加快时钟来逐渐调整时钟。如果时钟与真实时间相差太远,则需要很长时间才能纠正错误。 chronyc 的跟踪命令打印的系统时间值是需要应用于系统时钟的剩余校正。

如此处所述,您可能能够验证您的时钟实际上通过观察System time输出线进行调整chronyc tracking(有关详细信息,请参阅tracking中的部分man chronyc)。

为了能够chronyd步进时钟,您必须makestep在以下位置添加指令chrony.conf

# Step the clock on the first three updates
# if its offset is larger than one second
makestep 1 3

有时 - 例如在可以暂停和恢复的虚拟机上 - 您可能希望chronyd在任何更新上计时,而不仅仅是启动后的第一个更新:

# Step the clock on any update 
# if its offset is larger than one second
makestep 1 -1

但请记住官方文档中的警告(同样来自man chronyc):

[...] 任何时间跳跃都可能对某些应用程序产生不利后果。

相关内容