我可以更改正在运行的 ntpd 的轮询频率吗?

我可以更改正在运行的 ntpd 的轮询频率吗?

我已经ntpd运行了。它已经运行了一段时间,轮询频率最高达到 1024

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.local      132.163.4.102    2 u  813 1024  377    0.109   -0.209   0.342

无论出于什么原因,我都想将轮询频率重新设置为 128 秒。我不介意在轮询频率达到 128 秒一段时间后,按照通常的计划将轮询频率重新增加到 1024。但现在,此时此刻,我希望轮询频率为 128。

有办法吗?我知道的唯一方法就是重新启动ntpd

答案1

是的 - 但是您需要重新启动 ntpd 来重新加载配置。

查看文档这里

您可以设置两个选项minpoll nmaxpoll n进行调整以获得所需的上限和下限。

这些选项指定 NTP 消息的最小和最大轮询间隔,以秒的 2 次方为单位。最大轮询间隔默认为 10(1,024 秒),但可以通过 maxpoll 选项将其增加到上限 17(36.4 小时)。最小轮询间隔默认为 6(64 秒),但可以通过 minpoll 选项将其减少到下限 4(16 秒)。

例如在我的配置中我列出了;

server 127.127.28.1 minpoll 4每 16 秒轮询一次我的 GPS pps。

minpoll& maxpollcal 可以一起使用。

我认为现在没有任何方法可以降低轮询频率并使其恢复到 1024,但您可以降低它并将其保持在更理想的窗口内。

答案2

从理论上讲,如果您提前在 /etc/ntp.conf 中配置了身份验证密钥,找到了与 ntpq 的关联 id,并在关联 id 上使用 writevar 命令来更改轮询间隔,那么这是可能的。

不过,唯一允许在运行时更改的关联变量是闰秒指示器。请参阅https://lists.ntp.org/pipermail/questions/2005-February/004382.html以获得对此的解释以及指向实现它的代码的指针。

简而言之,这是不可能的。你为什么认为你想改变轮询间隔呢?

答案3

重新启动 ntpd 的替代方法是重新配置时间服务器关联,使用该ntpq实用程序删除旧服务器并使用新配置重新添加。与 一样/etc/ntp.conf,命令的参数server会建立新的轮询间隔。

以下是一份虚构的会议记录,内容如下:

# ntpq
ntpq> apeer
     remote       refid   assoc  st t when poll
=============================================== ...
*time.local      caffe17e 07734   2 u  813 1024
ntpq> :config unpeer 07734
Keyid: 23
MD5 Password: haileris
Config Succeeded
ntpq> :config server time.local minpoll 7 maxpoll 7
Config Succeeded
ntpq> apeer
     remote       refid   assoc  st t when poll
=============================================== ...
*time.local      caffe17e 07735   2 u   10  128
ntpq> quit
#

(您可以在记录中看到,该:config命令提示您向服务器验证自己的身份。如果您尚未为此目的设置身份验证密钥,则需要先执行此操作。这超出了这个问题的范围,但简而言之,意味着编辑/etc/ntp.keys/etc/ntp.conf,然后重新启动 ntpd 以加载身份验证设置。)

我验证了这在我的系统上有效,该系统运行的是 NTP 参考实现的 4.2.8p15 版本。

相关内容