假设机器有一个如下的 ntp.conf 文件:
Driftfile < path-to-drift-file
>
服务器 < NTP-server-1
>
服务器 < NTP-server-2
>
服务器 < NTP-server-2
>
由于某种原因,假设 NTP 服务器在第一次查询所有服务器时未运行。我们可以让 ntpd 重复查询这些源(即再次循环查询服务器 1 至服务器 3)吗?我们该怎么做?
编辑:有没有办法从机器中的 ntp.conf 给出的服务器列表中定量地确定哪个服务器导致了实际时间同步?
答案1
所有定义的服务器/etc/ntp.conf
都用于同步时间。无需让它“循环”遍历服务器,因为算法已经处理了多个源。
ntpd 程序通过按照指定的轮询间隔与一个或多个配置的服务器交换消息来运行。
从:手动 ntpd
ntpq -p
您可以通过在命令行上执行来显示您的同行及其状态来看到这一点。
您可能会看到类似如下所示的输出:
remote refid st when poll reach delay offset disp
========================================================================
+128.4.2.6 132.249.16.1 2 131 256 373 9.89 16.28 23.25
*128.4.1.20 .WWVB. 1 137 256 377 280.62 21.74 20.23
-128.8.2.88 128.8.10.1 2 49 128 376 294.14 5.94 17.47
+128.4.2.17 .WWVB. 1 173 256 377 279.95 20.56 16.40
手册页中也解释了输出内容。但随着时间的推移,我收集了一些笔记:
偏僻的:ntp.conf 文件中指定的对等点
* = 当前时间源
# = 选定源,距离超过最大值
o = 选定源,使用每秒脉冲数 (PPS)
+ = 选定源,包含在最终集合中
x = 源错误行情
. = 从候选列表末尾选定源
- = 被聚类算法丢弃的源
空白 = 被丢弃的源高层次,健全性失败重新:远程源的同步源
地层:源的层级
吨:可用类型
l = 本地(例如 GPS、WWVB)
u = 单播(最常见)
m = 多播
b = 广播
- = 网络地址什么时候:自上次响应以来经过的秒数
轮询:源的轮询间隔(以秒为单位)
抵达:表示成功/失败到达源,377 所有尝试均成功
延迟:表示接收回复的往返时间(以毫秒为单位)
抵消:表示客户端服务器与源之间的时间差,以毫秒为单位
失真/抖动:表示两个样本之间的差异(以毫秒为单位)
最后,回答最后一个问题;
有没有办法从机器中的ntp.conf中给出的服务器列表中定量地确定哪个服务器导致了实际时间同步?
标有 (*) 的主机是您当前选定的时间源。这可能会在轮询期间发生变化。