Date

Chrony 客戶端不更改系統和硬體日期

  • November 27, 2018

語境

  • 700
  • 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 守護程序更新日期並顯示日期

60 多分鐘後,我date在終端中執行命令並得到以下輸出:

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

chronyd 尚未更新日期…

文件夾/var/log/chronyd/為空

任何的想法 ?

引用官方FAQchronyd只會逐漸調整時鐘:

預設情況下,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):

$$ … $$時間的任何跳躍都可能對某些應用程序產生不利影響。

引用自:https://unix.stackexchange.com/questions/484467