如何在 Linux 下確認 NTP 是否同步?

2019-06-08 21:57:00

NTP 意即網路時間協定Network Time Protocol,它通過網路同步計算機系統之間的時鐘。NTP 伺服器可以使組織中的所有伺服器保持同步,以準確時間執行基於時間的作業。NTP 用戶端會將其時鐘與 NTP 伺服器同步。

我們已經寫了一篇關於 NTP 伺服器和用戶端安裝和設定的文章。如果你想檢視這些文章,請導航至以下連結。

我假設你已經使用上述連結設定了 NTP 伺服器和 NTP 用戶端。現在,如何驗證 NTP 設定是否正常工作?

Linux 中有三個命令可用於驗證 NTP 同步情況。詳情如下。在本文中,我們將告訴您如何使用所有這些命令驗證 NTP 同步。

  • ntpq:ntpq 是一個標準的 NTP 查詢程式。
  • ntpstat:顯示網路世界同步狀態。
  • timedatectl:它控制 systemd 系統中的系統時間和日期。

方法 1:如何使用 ntpq 命令檢查 NTP 狀態?

ntpq 實用程式用於監視 NTP 守護程式 ntpd 的操作並確定效能。

該程式可以以互動模式執行,也可以使用命令列引數進行控制。它通過向伺服器傳送多個查詢來列印出連線的對等項列表。如果 NTP 正常工作,你將獲得類似於下面的輸出。

# ntpq -p     remote           refid      st t when poll reach   delay   offset  jitter==============================================================================*CentOS7.2daygee 133.243.238.163  2 u   14   64   37    0.686    0.151  16.432

細節:

  • -p:列印伺服器已知的對等項列表以及其狀態摘要。

方法 2:如何使用 ntpstat 命令檢查 NTP 狀態?

ntpstat 將報告在本地計算機上執行的 NTP 守護程式(ntpd)的同步狀態。如果發現本地系統與參考時間源保持同步,則 ntpstat 將報告大致的時間精度。

ntpstat 命令根據 NTP 同步狀態返回三種狀態碼。詳情如下。

  • 0:如果時鐘同步則返回 0。
  • 1:如果時鐘不同步則返回 1。
  • 2:如果時鐘狀態不確定,則返回 2,例如 ntpd 不可聯絡時。
# ntpstatsynchronised to NTP server (192.168.1.8) at stratum 3   time correct to within 508 ms   polling server every 64 s

方法 3:如何使用 timedatectl 命令檢查 NTP 狀態?

timedatectl 命令用於查詢和更改系統時鐘及其在 systmed 系統中的設定。

# timedatectl或# timedatectl status      Local time: Thu 2019-05-30 05:01:05 CDT  Universal time: Thu 2019-05-30 10:01:05 UTC        RTC time: Thu 2019-05-30 10:01:05       Time zone: America/Chicago (CDT, -0500)     NTP enabled: yesNTP synchronized: yes RTC in local TZ: no      DST active: yes Last DST change: DST began at                  Sun 2019-03-10 01:59:59 CST                  Sun 2019-03-10 03:00:00 CDT Next DST change: DST ends (the clock jumps one hour backwards) at                  Sun 2019-11-03 01:59:59 CDT                  Sun 2019-11-03 01:00:00 CST

更多技巧

Chrony 是一個 NTP 用戶端的替代品。它可以更快地同步系統時鐘,時間精度更高,對於一直不線上的系統尤其有用。

chronyd 較小,它使用較少的記憶體,只在必要時才喚醒 CPU,這樣可以更好地節省電能。即使網路擁塞較長時間,它也能很好地執行。

你可以使用以下任何命令來檢查 Chrony 狀態。

檢查 Chrony 跟蹤狀態。

# chronyc trackingReference ID    : C0A80105 (CentOS7.2daygeek.com)Stratum         : 3Ref time (UTC)  : Thu Mar 28 05:57:27 2019System time     : 0.000002545 seconds slow of NTP timeLast offset     : +0.001194361 secondsRMS offset      : 0.001194361 secondsFrequency       : 1.650 ppm fastResidual freq   : +184.101 ppmSkew            : 2.962 ppmRoot delay      : 0.107966967 secondsRoot dispersion : 1.060455322 secondsUpdate interval : 2.0 secondsLeap status     : Normal

執行 sources 命令以顯示有關當前時間源的資訊。

# chronyc sources210 Number of sources = 1MS Name/IP address         Stratum Poll Reach LastRx Last sample===============================================================================^* CentOS7.2daygeek.com          2   6    17    62    +36us[+1230us] +/- 1111ms