NTP用于將計算機客戶或服務器的時間同步到另一服務器或參考時鐘源。它使用UTC作為時間標準,是基于無連接的IP 協議和UDP協議的應用層協議,使用層次式時間分布模型,所能取得的準確度依賴于本地時鐘硬件的精確度和對設備及進程延遲的嚴格控制。
Linux 中有三個命令可用于驗證 NTP 同步情況。
-
ntpq:ntpq 是一個標準的 NTP 查詢程序。
-
ntpstat:顯示網絡世界同步狀態。
-
timedatectl:它控制 systemd 系統中的系統時間和日期。
方法 1:如何使用 ntpq 命令檢查 NTP 狀態?
ntpq 實用程序用于監視 NTP 守護程序 ntpd 的操作并確定性能。
該程序可以以交互模式運行,也可以使用命令行參數進行控制。它通過向服務器發送多個查詢來打印出連接的對等項列表。如果 NTP 正常工作,你將獲得類似于下面的輸出。
ntpq -p
細節:
-
-p
:打印服務器已知的對等項列表以及其狀態摘要。
方法 2:如何使用 ntpstat 命令檢查 NTP 狀態?
ntpstat 將報告在本地計算機上運行的 NTP 守護程序(ntpd)的同步狀態。如果發現本地系統與參考時間源保持同步,則 ntpstat 將報告大致的時間精度。 ntpstat 命令根據 NTP 同步狀態返回三種狀態碼。詳情如下。
-
0:如果時鐘同步則返回 0。
-
1:如果時鐘不同步則返回 1。
-
2:如果時鐘狀態不確定,則返回 2,例如 ntpd 不可聯系時。
ntpstat
方法 3:如何使用 timedatectl 命令檢查 NTP 狀態?
timedatectl 命令用于查詢和更改系統時鐘及其在 systmed 系統中的設置。
timedatectl
或
timedatectl status
更多技巧
Chrony 是一個 NTP 客戶端的替代品。它可以更快地同步系統時鐘,時間精度更高,對于一直不在線的系統尤其有用。
chronyd 較小,它使用較少的內存,只在必要時才喚醒 CPU,這樣可以更好地節省電能。即使網絡擁塞較長時間,它也能很好地運行。
你可以使用以下任何命令來檢查 Chrony 狀態。
檢查 Chrony 跟蹤狀態。
# chronyc tracking
Reference ID : C0A80105 (CentOS7.2daygeek.com)
Stratum : 3
Ref time (UTC) : Thu Mar 28 05:57:27 2019
System time : 0.000002545 seconds slow of NTP time
Last offset : +0.001194361 seconds
RMS offset : 0.001194361 seconds
Frequency : 1.650 ppm fast
Residual freq : +184.101 ppm
Skew : 2.962 ppm
Root delay : 0.107966967 seconds
Root dispersion : 1.060455322 seconds
Update interval : 2.0 seconds
Leap status : Normal
運行sources 命令以顯示有關當前時間源的信息。
# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* CentOS7.2daygeek.com 2 6 17 62 +36us[+1230us] +/- 1111ms