![语境](https://linux22.com/image/142714/%E8%AF%AD%E5%A2%83.png)
语境
- 森托斯7
- chronyd (chrony) 版本 3.1
问题
我遇到chonyd
服务器日期问题。
首先,将当前日期更改为旧日期
我将硬件时钟日期从当前实际日期更改mar. nov. 27 15:57:12 CET 2018
为mer. 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 守护进程更新日期并显示日期
date
60 多分钟后,我在终端中运行命令并得到以下输出:
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
):
[...] 任何时间跳跃都可能对某些应用程序产生不利后果。