要查看系统时间被同步修改的日志,需先用timedatectl确认服务类型,再用journalctl结合服务名与关键词(如slew、step、adjusting clock)筛选日志,并可辅以chronyc命令验证校正历史。

要查看系统时间被同步修改的日志,核心是筛选出 chronyd、systemd-timesyncd 或 ntpd 服务在时间调整时生成的记录,这些操作通常会写入 journald 并带有明确的时间变更标识。
定位时间同步服务的日志
大多数现代 Linux 系统(如 RHEL/CentOS 8+、Fedora、Ubuntu 20.04+)默认使用 chronyd 进行时间同步。先确认当前服务:
-
检查活跃的时间同步服务:
timedatectl status | grep "NTP service" -
若显示 chronyd:用
journalctl -u chronyd.service -n 50查看最近 50 条 chronyd 日志 -
若显示 systemd-timesyncd:用
journalctl -u systemd-timesyncd.service -n 50
搜索关键时间调整事件
chronyd 在成功校正系统时间时,会在日志中输出类似 "System clock wrong by" 或 "slew of" 的提示;systemd-timesyncd 则常用 "adjusting clock" 或 "time slew"。
- 快速检索所有含时间修正关键词的日志:
journalctl | grep -i -E "(slew|wrong by|adjusting clock|step|offset)" - 限定在最近 24 小时内:
journalctl --since "24 hours ago" | grep -i "slew" - 结合服务与关键词(推荐):
journalctl -u chronyd.service --since "7 days ago" | grep -i "slew"
关注时间跳变(step)和渐进校正(slew)的区别
chronyd 默认采用渐进式校正(slew),避免时间突变;但若偏差过大(如 > 0.5 秒且配置允许),它可能执行 step 跳变。这两种行为在日志中表现不同:
-
slew 日志示例:
chronyd[1234]: System clock wrong by 0.123456 seconds, slewing at 123.456 ppm -
step 日志示例:
chronyd[1234]: System clock was stepped by 1.234567 seconds - 注意:step 操作更易被应用感知,常触发告警,是排查“时间突变”问题的关键线索
验证时间同步状态与历史校正记录
chronyd 提供内置命令查看详细同步历史,比单纯翻日志更直接:
- 运行
chronyc tracking查看当前偏移、同步源、校正率 - 运行
chronyc sources -v查看 NTP 源状态 - 运行
chronyc makestep(仅当需要强制跳变时)——该命令本身也会记入 journal - chronyd 的校正事件(尤其是 step)一定会写入 journal,所以
journalctl -u chronyd是最权威的原始依据


















