Chrony是一個開源的自由軟件,它能幫助你保持系統(tǒng)時鐘與時鐘服務器(NTP)同步,因此讓你的時間保持精確。它由兩個程序組成,分別是chronyd和chronyc。chronyd是一個后臺運行的守護進程,用于調整內核中運行的系統(tǒng)時鐘和時鐘服務器同步。它確定計算機增減時間的比率,并對此進行補償。chronyc提供了一個用戶界面,用于監(jiān)控性能并進行多樣化的配置。它可以在chronyd實例控制的計算機上工作,也可以在一臺不同的遠程計算機上工作。
在像CentOS 7之類基于RHEL的操作系統(tǒng)上,已經默認安裝有Chrony。
Chrony配置
當Chrony啟動時,它會讀取/etc/chrony.conf配置文件中的設置。CentOS 7操作系統(tǒng)上最重要的設置有:
server - 該參數可以多次用于添加時鐘服務器,必須以"server "格式使用。一般而言,你想添加多少服務器,就可以添加多少服務器。
stratumweight - stratumweight指令設置當chronyd從可用源中選擇同步源時,每個層應該添加多少距離到同步距離。默認情況下,CentOS中設置為0,讓chronyd在選擇源時忽略源的層級。
driftfile - chronyd程序的主要行為之一,就是根據實際時間計算出計算機增減時間的比率,將它記錄到一個文件中是最合理的,它會在重啟后為系統(tǒng)時鐘作出補償,甚至可能的話,會從時鐘服務器獲得較好的估值。
rtcsync - rtcsync指令將啟用一個內核模式,在該模式中,系統(tǒng)時間每11分鐘會拷貝到實時時鐘(RTC)。
allow / deny - 這里你可以指定一臺主機、子網,或者網絡以允許或拒絕NTP連接到扮演時鐘服務器的機器。
cmdallow / cmddeny - 跟上面相類似,只是你可以指定哪個IP地址或哪臺主機可以通過chronyd使用控制命令
bindcmdaddress - 該指令允許你限制chronyd監(jiān)聽哪個網絡接口的命令包(由chronyc執(zhí)行)。該指令通過cmddeny機制提供了一個除上述限制以外可用的額外的訪問控制等級。
makestep - 通常,chronyd將根據需求通過減慢或加速時鐘,使得系統(tǒng)逐步糾正所有時間偏差。在某些特定情況下,系統(tǒng)時鐘可能會漂移過快,導致該調整過程消耗很長的時間來糾正系統(tǒng)時鐘。該指令強制chronyd在調整期大于某個閥值時步進調整系統(tǒng)時鐘,但只有在因為chronyd啟動時間超過指定限制(可使用負值來禁用限制),沒有更多時鐘更新時才生效。
使用chronyc
你也可以通過運行chronyc命令來修改設置,命令如下:
accheck - 檢查NTP訪問是否對特定主機可用
activity - 該命令會顯示有多少NTP源在線/離線
add server - 手動添加一臺新的NTP服務器。
clients - 在客戶端報告已訪問到服務器
delete - 手動移除NTP服務器或對等服務器
settime - 手動設置守護進程時間
tracking - 顯示系統(tǒng)時間信息
你可以通過使用幫助命令查看完整的命令列表: