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

贊 回覆發表於2019-06-08
作者: Magesh Maruthamuthu 譯者: LCTT Xingyu.Wang

| 2019-06-08 21:57   評論: 2 收藏: 2    

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 不可聯絡時。
# ntpstat

synchronised 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: yes
NTP 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 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

via: https://www.2daygeek.com/check-verify-ntp-sync-is-working-or-not-in-linux-using-ntpq-ntpstat-timedatectl/

作者:Magesh Maruthamuthu 選題:lujun9972 譯者:wxy 校對:校對者ID

本文由 LCTT 原創編譯,Linux中國 榮譽推出

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

相關文章