Linux時間同步 Chrony

Chrony屬於開源的自由軟件,是NTPNetwork Time Protocol,網絡時間協議)的另一種實現,與ntp不同,它可以更快且更準確地同步系統時鐘,最大程度的減少時間和頻率誤差。在CentOS 7或基於RHEL 7操作系統上,已經是默認服務。它能讓本地時間與服務器時間始終保持同步。與 ntpd 或者 ntpdate 最大的區別就是,Chrony 的修正是連續的,通過減慢時鐘或者加快時鐘的方式連續的修正。而 ntpd 或者 ntpdate 搭配 Crontab 的校時工具是直接調整時間,會出現間斷,並且相同時間可能會出現兩次。

使用chronyd服務平滑同步時間的方式要優於crontab + ntpdate,更快的同步只需要數分鐘而非數小時時間,從而最大程度的減少時間和頻率誤差。使用ntpdate同步時間會造成時間的跳躍,對一些依賴時間的程序和服務會造成影響,例如:sleep、timer等,且chronyd服務可以在修正時間的過程中同時修正CPU tick。

系統最小化安裝時也已經安裝了 Chrony 服務

如果在chrony配置文件中指定了ntp服務器的地址,那麼chrony就是一臺客戶端,會去同步ntp服務器的時間,如果在chrony配置了允許某些客戶端來向自己同步時間,則chrony也充當了一臺服務器,所以,安裝了chrony即可充當客戶端也可以充當服務端。


配置文件:/etc/chrony.conf

  • server:指明時間服務器地址;
  • allow all:允許所有客戶端主機;
  • allow 192.168.1.0/24 : 只允許192.168.1.0網段的客戶端進行時間同步;
  • deny all:拒絕所有客戶端;
  • bindcmdaddress:命令管理接口監聽的地址;
  • local stratum 10:即使自己未能通過網絡時間服務器同步到時間,也允許將本地時間作爲標準時間授時給其它客戶端;
  • rtcsync: 啓用RTC(實時時鐘)的內核同步;
  • stratumweight 0:讓chronyd在選擇源時忽略源的層級;
  • makestep 10 3 :如果系統時鐘的偏移量大於10秒,則允許在前三次更新中步進調整系統時鐘;
  • 建議設置成 makestep 10 -1  隨時進行步進時鐘;

  • logdir /var/log/chrony : 指定存放日誌文件的目錄;
  • keyfile /etc/chrony.keys : 指定包含NTP驗證密鑰的文件;
  • noclientlog :禁用客戶端訪問的日誌記錄;
  • logchange 0.5 : 如果時鐘調整大於0.5秒,則向系統日誌發送消息;

  • 啓動 chrony 服務

  • chrony 服務的交互式工具 chronyc

  • chrony自帶一個交互式工具chronyc,在配置文件中指定了時間服務器之後,如果想查看同步狀態,可以進入這個交互式工具的交互界面。

常用指令說明:

  •  help:查看完整的命令幫助列表
  •  makestep:立即同步時間
  •  tracking:顯示系統時間信息
  •  activity:檢查多少NTP源在線/離線
  •  add server:手動添加一臺新的NTP服務器
  •  delete:手動移除NTP服務器或對等服務器
  •  accheck:檢查NTP訪問是否對特定主機可用
  •  clients:在客戶端報告已訪問到的服務器
  •  sources -v : 查看時間同步源

  • ^* / * 是時間同步成功,+ 是時間備用同步服務器,? 是時間同步失敗)
  • 查看時間源狀態 sourcestate -v

  • 使用 timedatectl 開啓 ntp 自動同步

  • 設置開機啓動

  • 在客戶端安裝 chrony 服務並配置服務器地址爲 192.168.10.2

  • 編輯配置文件

  • 啓動服務並設置開機啓動

  • 查看時間源狀態

  • 更改系統時間測試


  • cat /etc/adjtime    |  date -R  #查看系統默認時間顯示的是哪個區域的【UTC】(+0800)表示我國東八區GMT + 8 = UTC + 8 = CST
     
    timedatectl set-time "2020-01-13 08:30:50"        #更改時間

    timedatectl set-timezone Asia/Shanghai            #更改時區

    timedatectl list-timezones                                 #查看支持的所有時區

    timedatectl set-local -rtc 0|1                             #設定/etc/adjtime中的時間顯示格式    【是否使用UTC時間,0爲使用,1爲不使用】
     

  • ln /usr/share/zoneinfo/Asia/Shanghai /etc/localtime       #創建硬鏈接到本地時區 

  • ls  -l /etc/localtime 
    lrwxrwxrwx. 1 root root 35 Aug 25 21:06 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai


發佈了32 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章