使用chrony查看同步情況

一、chrony的基本介紹

chrony是一款可選的時間同步軟體,它支持使用現代的NTP協議進行時間同步,並且能夠處理網路延遲、變化的網路狀況和時鐘漂移問題。在默認情況下,chrony會自動與可用的時間伺服器同步,並且能夠提供本機時間與UTC的偏差信息。因此,它經常被用於在Linux系統中維護準確的時間。

二、安裝和配置

1、安裝chrony

“`bash
$ sudo apt-get install chrony
“`

2、配置chrony。可以在/etc/chrony/chrony.conf文件中配置chrony的選項。可以更改伺服器的同步選項、源、限制等。下面是一個示例配置文件:

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/chrony.drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable NTP measurements (ITP: Ignore Tally Packet)
# Also add a delay of 30 seconds to minimize the impact of IP rate limiting.
#minsources 2
#maxdistance 86400
#makestep 0.1 -1

# Allow NTP client access from local network.
allow 192.168.0.0/16
allow 10.0.0.0/8

# Serve time even if not synchronized to a time source.
local stratum 10

# Specify file containing keys for NTP authentication.
keyfile /etc/chrony/chrony.keys

# Specify directory for log files.
logdir /var/log/chrony

# Selectively log NTP clients logs on trust/untrust basis
#nologall
#log client

在這裡,它使用了四個ntp伺服器源,並記錄時鐘漂移。它還允許在前三個同步更新時使用步進模式。它允許內部網路的設備同步,即允許192.168.0.0/16和10.0.0.0/8網路的設備同步。最後,它指定了日誌文件的存放位置。

三、chronyc命令

可以通過typing 「chronyc」來使用chronyc的互動式shell。下面是一些常用的chronyc命令:

1、tracking

tracking命令用於查看伺服器與本地時鐘的同步情況。

“`bash
$ sudo chronyc tracking
Reference ID : 1.2.3.4 (server.example.com)
Stratum : 3
Ref time (UTC) : Fri Sep 28 23:48:35 2018
System time : 0.000001307 seconds slow of NTP time
Last offset : -0.000034705 seconds
RMS offset : 0.000022875 seconds
Frequency : 15.401 ppm slow
Residual freq : +0.000 ppm
Skew : 0.276 ppm
Root delay : 0.214196 seconds
Root dispersion : 0.000236 seconds
Update interval : 64.0 seconds
Leap status : Normal
“`

在這個例子中,Reference ID和Stratum是伺服器的信息。Ref time是在參考時刻中參考伺服器的UTC時間。System time是本地時鐘相對於NTP時鐘慢的時間。RMS offset是樣本中所有偏移量的平均值,Frequency是本地時鐘的頻率偏差。

2、sources

sources命令可以查看系統當前使用的源。

“`bash
$ sudo chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 192.168.1.1 2 6 7 27 -180us[-210us] +/- 19ms
^* ntp.sjtu.edu.cn 2 6 7 27 -175us[-201us] +/- 28ms
^- ntp.hit.edu.cn 2 6 7 31 +1424us[+1421us] +/- 18ms
^- ntp.zju.edu.cn 2 6 7 27 -1489us[-1487us] +/- 24ms
“`

這個例子中有4個源。ms是首選伺服器,還有3個客戶端連接在同步上。Stratum是伺服器的層級深度,Poll表示同步頻率,Reach表示伺服器與客戶端的聯繫狀態。LastRx是最後一次從伺服器接到同步信息的時間,Last sample是最後的樣本偏差。

3、sourcestats

sourcestats命令可以查看每個源的同步總次數、丟失總次數和錯誤總數,以及每個源在使用之前的延遲。

“`bash
$ sudo chronyc sourcestats
210 Number of sources = 4
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
192.168.1.1 9 6 41ms -14.075 0.010 -262us 152us
ntp.sjtu.edu.cn 10 7 40ms -22.637 0.067 -5ms 104us
ntp.hit.edu.cn 9 7 58ms +19.838 0.118 +603us 228us
ntp.zju.edu.cn 8 6 42ms +6.259 0.107 -50ms 73us
“`

這個例子中,NP和NR分別表示伺服器發送的包的次數和伺服器接收的包的次數。Span表示時間跨度,frequency是伺服器產生信號的平均頻率,而freq skew表示相對於平均頻率的時間偏移量。Offset表示伺服器的時鐘與真實時鐘之間的平均時間差異,而標準差是一組樣本值的離散程度的一種度量。

4、rtcdata

rtcdata命令提供本地實時時鐘(RTC)的精度數據。

“`bash
$ sudo chronyc rtcdata
Last measurement 936us, day since Jan 01 1968 = 18463
“`

在這個例子中,它顯示了自RTC上一次校準以來經過的時間,並給出了最近一次時間精度測試的數據。

5、waitsync

waitsync命令將等待NTP裝置時間。如果菜單中沒有電子時鐘,也可以使用這個命令手動同步。可以使用這個命令手動將計算機與NTP伺服器同步到準確的時間。

“`bash
$ sudo chronyc waitsync 1
“`

四、結論

綜上所述,通過chrony提供的命令和配置選項,我們可以很方便地查看系統當前的時間同步情況,並進行必要的維護和手動同步。藉助chrony的強大的網路延遲,變化的網路狀況、時鐘漂移問題處理能力,我們可以確保Linux系統保持準確的時間。

原創文章,作者:EVGNO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/361712.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EVGNO的頭像EVGNO
上一篇 2025-02-25 18:17
下一篇 2025-02-25 18:17

相關推薦

發表回復

登錄後才能評論