linux怎么查看ntp是否同步

来源:Java编程网作者:永濑头衔:网络博主
导读:本期聚焦于小伙伴创作的《linux怎么查看ntp是否同步》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《linux怎么查看ntp是否同步》有用,将其分享出去将是对创作者最好的鼓励。

在linux系统中,网络时间协议(ntp)用于保证服务器时间与标准时间源保持一致,很多业务场景都依赖准确的时间,因此查看ntp是否同步是日常运维中的常见操作。不同的linux发行版可能使用不同的时间同步服务,对应的查看方法也存在差异。

linux怎么查看ntp是否同步

使用ntpq命令查看ntp同步状态

如果系统使用的是传统的ntp服务,可以通过ntpq命令查询同步状态,该命令是ntp服务的自带工具,能够显示与上游时间服务器的连接和同步情况。

执行以下命令可以查看ntp对等体状态:

# 查看ntp对等体列表,参数p表示显示对等体信息
ntpq -p

命令输出结果包含多个列,关键列的含义如下:

  • remote:上游时间服务器的地址
  • refid:上游服务器参考的时间源地址
  • st:时间源的层级,层级越低优先级越高
  • offset:本地时间与服务器时间的偏移量,单位为毫秒,数值越小同步越精准
  • jitter:时间抖动量,数值越小表示时间越稳定
  • reach:最近8次轮询的可达性,377表示8次全部可达

如果输出中有一行开头带有*符号,说明该服务器是当前正在使用的同步源,且同步状态正常。如果所有行都没有*符号,说明还没有完成同步。

使用chronyc命令查看同步状态

现在很多新的linux发行版(如CentOS 8、Ubuntu 20.04及以上版本)默认使用chrony作为时间同步服务,替代了传统的ntp服务,此时需要使用chronyc命令查看状态。

执行以下命令可以查看chrony的同步源状态:

# 查看chrony的同步源列表
chronyc sources

输出结果中,^*开头的行表示当前正在使用的同步源,^+表示候选同步源,^-表示被排除的同步源。如果看到^*开头的行,说明chrony已经完成同步。

还可以执行以下命令查看更详细的同步状态:

# 查看chrony的跟踪状态
chronyc tracking

输出中的Leap status字段如果显示Normal,说明时间同步正常;如果显示Not synchronised,说明还没有完成同步。

查看系统时间和同步状态文件

除了使用专用命令,还可以通过查看系统相关文件判断ntp是否同步。

首先可以查看系统时间是否与本地时间一致,执行date命令查看当前系统时间,对比本地实际时间是否有明显偏差。

如果使用的是ntp服务,可以查看/var/lib/ntp/ntp.drift文件,该文件存在且内容不为0,说明ntp服务正在运行并计算时间漂移。如果使用的是chrony服务,可以查看/var/lib/chrony/chrony.drift文件,作用类似。

查看服务运行日志

通过查看时间同步服务的运行日志,也能判断同步是否正常。

对于ntp服务,日志通常存放在/var/log/ntp.log,或者可以通过journalctl -u ntp查看服务日志,搜索是否有synchronized to相关的成功同步记录。

对于chrony服务,执行journalctl -u chronyd查看日志,搜索Selected source相关的记录,确认是否成功选择了同步源。

同步异常排查思路

如果查看后发现ntp没有同步,可以按照以下步骤排查:

  • 检查时间同步服务是否正常运行,执行systemctl status ntp或者systemctl status chronyd查看服务状态
  • 检查上游时间服务器地址是否配置正确,ntp的配置文件是/etc/ntp.conf,chrony的配置文件是/etc/chrony.conf
  • 检查防火墙是否放行了ntp服务的123端口,ntp使用UDP 123端口进行通信
  • 检查服务器是否能正常访问上游时间服务器,使用ping 时间服务器地址测试网络连通性

代码示例:自动检查ntp同步状态脚本

可以编写一个简单的shell脚本,自动检查ntp同步状态并输出结果:

#!/bin/bash

# 检查是否安装chrony
if command -v chronyc >/dev/null 2>&1; then
    echo "检测到chrony服务,正在检查同步状态..."
    # 查看跟踪状态,判断是否正常同步
    tracking_info=$(chronyc tracking 2>/dev/null)
    if echo "$tracking_info" | grep -q "Leap status: Normal"; then
        echo "chrony同步状态正常"
    else
        echo "chrony未同步,请检查服务状态"
    fi
# 检查是否安装ntp
elif command -v ntpq >/dev/null 2>&1; then
    echo "检测到ntp服务,正在检查同步状态..."
    # 查看对等体状态,判断是否有*开头的同步源
    peer_info=$(ntpq -p 2>/dev/null)
    if echo "$peer_info" | grep -q "^*"; then
        echo "ntp同步状态正常"
    else
        echo "ntp未同步,请检查服务状态"
    fi
else
    echo "未检测到ntp或chrony服务,请先安装时间同步服务"
fi

将上述脚本保存为check_ntp_sync.sh,添加执行权限后运行,即可快速判断当前系统的ntp同步状态。

linuxntp时间同步chronyntpq修改时间:2026-07-03 18:30:29

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。