我正在尝试找出最近检查的时间,看看我们是否同步。我可以使用以下命令查看 chrony 的来源:
~]$ chronyc sources
210 Number of sources = 3
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* a.b.c 1 10 377 32m -8638us[-8930us] +/- 103ms
^- d.e.f 1 10 366 77m +2928us[+1960us] +/- 104ms
^+ g.h.i 2 10 377 403 -14ms[ -14ms] +/- 137ms
*
符号表示我们同步到的服务器,+
符号表示“可接受”的服务器。我可以看到 chrony 确实在轮询 a.b.c
和 g.h.i
。
所以我想知道的是,我是否可以使用两个
LastRx
值之间的最小值作为我们确认同步的最近时间。在此示例中,我们同步到 a.b.c
,但 403s < 32m, so does that mean that 403 seconds ago chrony checked against g.h.i
并确定我们处于同步状态。换句话说,我最后一次知道系统时间同步是 403 秒,还是 32 分钟前?
这里有一些关于
chronyc
命令的文档:https://chrony.tuxfamily.org/doc/3.5/chronyc.html
使用命令
chronyc tracking
并在输出中显示 Ref time (UTC)
:
Reference ID : B97DBE39 (prod-ntp-4.ntp4.ps5.canonical.com)
Stratum : 3
Ref time (UTC) : Sat Aug 12 14:44:33 2023
System time : 0.000175581 seconds slow of NTP time
Last offset : -0.000223673 seconds
RMS offset : 0.000160186 seconds
Frequency : 0.528 ppm fast
Residual freq : +0.000 ppm
Skew : 0.014 ppm
Root delay : 0.041114863 seconds
Root dispersion : 0.005161697 seconds
Update interval : 1038.2 seconds
Leap status : Normal
根据 chronyc 手册页 Ref time 字段描述为
这是处理来自参考源的最后一次测量的时间 (UTC)。
所以我认为这一定是您正在寻找的数据。
要将 UTC 时间戳转换为本地时间,您可以使用例如日期命令:
$ date -d 'Sat Aug 12 14:44:33 2023 UTC'
Sat Aug 12 17:44:33 EEST 2023
(我当地时间是 EEST。)