如何验证NTP是否正常(检查NTP状态)
我已经设置了NTP(网络时间协议)客户端和/或者服务器来管理网络上的系统时钟。
但是,如何验证其正常工作?
如何检查NTP的状态?
在服务器和客户端系统上,保持正确的时间至关重要。
您可以使用以下任何程序来验证NTP客户端配置在Linux或者类Unix系统上是否正常运行。
如何检查NTP是否正常工作?
ntpq
标准NTP查询程序ntpstat
显示网络时间同步状态timedatectl
使用systemd显示或者设置有关ntp的信息
让我们详细查看所有命令和示例
使用ntpstat命令验证NTP是否正常工作
ntpstat命令将报告在本地计算机上运行的NTP守护程序的同步状态。
如果发现本地系统与参考时间源同步,则ntpstat将报告近似的时间精度。
ntpstat命令的退出状态
您可以使用退出状态(返回值)从shell脚本或者命令行本身验证其操作:
- 如果退出状态0时钟已同步。
- 退出状态1时钟未同步。
- 退出状态2如果时钟状态不确定,例如ntpd无法连接。
执行命令,如下所示:
$ ntpstat
输出示例:
synchronised to NTP server (149.20.54.20) at stratum 3 time correct to within 42 ms polling server every 1024 s
使用echo命令显示ntp客户端的退出状态:
$ echo $?
输出示例:
0
使用ntpq命令检查NTP的状态
ntpq实用程序用于监视NTP守护程序ntpd操作并确定性能。
该程序可以以交互方式运行,也可以使用命令行参数进行控制。
在基于Linux或者Unix的系统上执行以下命令:
$ ntpq -pn
或者
$ ntpq -p
输出示例:
remote refid st t when poll reach delay offset jitter ============================================================================== *dione.cbane.org 204.123.2.5 2 u 509 1024 377 51.661 -3.343 0.279 +ns1.your-site.c 132.236.56.252 3 u 899 1024 377 48.395 2.047 1.006 +ntp.yoinks.net 129.7.1.66 2 u 930 1024 377 0.693 1.035 0.241 LOCAL(0) .LOCL. 10 l 45 64 377 0.000 0.000 0.001
*您同步到的源(syspeer)。
上面是运行ntp客户端的示例。
其中:
- -p:打印服务器已知的对等点列表以及它们的状态摘要。
- -n:以点分四进制数字格式输出所有主机地址,而不是转换为规范的主机名。
另一个可靠的来源正在运行以下命令:
$ ntpq -c rv
查找以下跳转代码:跳转代码0(leap_none)表示正常的同步状态。
飞跃代码3(leap_alarm)表示NTP从未同步。
这是一个示例输出:
关于timedatectl命令的注释
如果使用的是基于systemd的系统,请运行以下命令以检查服务状态
# timedatectl status
输出示例:我的NTP(系统时间同步)是否正常工作?
systemd-timesyncd配置
如果"启用NTP"设置为"否"。
尝试通过编辑/etc/systemd/timesyncd.conf
文件进行配置,如下所示:
# vi /etc/systemd/timesyncd.conf
如下追加/编辑[时间],即添加时间服务器或者更改提供的时间服务器,取消注释相关行并列出其主机名或者IP,并用空格分隔(默认是我的Debian 8.x服务器):
[Time] Servers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
保存并关闭文件。
最后,启动并启用它,运行:
# timedatectl set-ntp true # timedatectl status
输出示例:
Local time: Mon 2019-09-30 18:25:38 IST Universal time: Mon 2019-09-30 12:55:38 UTC RTC time: Mon 2019-09-30 12:55:38 Time zone: Asia/Kolkata (IST, +0530) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
以上是验证NTP在Linux上正常工作的简便方法。