System clock synchronized: yes 是同步成功的直接判定依据,NTP service: active 仅表示服务运行;前者为 no 即未同步,无论后者状态如何。

timedatectl status 里哪些字段真正反映同步结果
直接看 timedatectl status 输出,关键就两行:System clock synchronized: yes 和 NTP service: active。前者是结论,后者只是服务在跑——服务跑着但没同步成功很常见。
如果 System clock synchronized 是 no,哪怕 NTP service 显示 active,也说明当前没同步上。
注意:这个状态每 64 秒左右刷新一次,不是实时的;刚重启服务后可能要等几秒才更新。
chronyc sources -v 看懂符号和延迟含义
用 chronyc sources -v 查 chrony 时,最核心的是第一列的标记符:^* 表示正在用的主时间源(只有一个)^+ 表示可用的候选源(可能被选中)^? 表示无法访问或响应超时^- 表示已排除(比如偏移太大)
第二列的 MS(Mode/Sync)显示是否已同步;NS(NTP Sync)表示该源是否支持 NTP 协议;delay 值超过 100ms 就值得怀疑网络质量;offset 超过 ±50ms 通常意味着同步异常,chrony 可能还在“追赶”阶段。
ntpq -p 输出里带 * 的那行才是真正在用的源
ntpq -p 的输出中,第一列字符是关键:*(星号)代表当前选定的主同步源,仅一个+ 表示可选的潜在源(参与“候选池”)o 表示使用 PPS(脉冲信号)校准,极少见 (空格)表示未使用、不可达或未同步
重点关注 recv 列:为 0 表示完全没收到响应;when 超过 64 表示长时间未轮询;offset 绝对值大于 100ms 说明偏差过大,ntpd 可能处于“步进”而非“平滑调整”模式。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
为什么 ntpstat 返回 0 却 still unsynchronized
ntpstat 返回码为 0 仅表示 ntpd 进程在运行且曾同步过,不保证当前有效:
它不检查最近一次同步是否成功,只查内存中缓存的状态
如果网络中断后恢复,ntpd 可能还没完成下一轮 poll,ntpstat 仍返回 0
它无法识别 chrony,用在 chrony 系统上会报错或始终显示 unsynchronised
实际验证建议组合使用:ntpstat && ntpq -p | grep '^\*',否则容易误判
同步任务本身没有“任务列表”概念——它不是 cron 那种可查日志的离散作业,而是持续运行的守护进程在后台做微调。真正要盯的只有三件事:服务是否活着、有没有可用源、当前偏移是否在合理范围内。其他工具(如 chronyc tracking 中的 Last offset、Root dispersion)数值突变,往往比“yes/no”更早暴露问题。

















