dmesg 显示的时间是将来的时间

最近由于服务器内存异常,查看了一下dmesg的日志,结果发现dmesg显示的时间是将来的时间。由于时间不准确,在进行排障的时候造成了一些麻烦;以下显示当前系统时间是2022/3/10,而dmesg中显示的时间为2022/3/11。

[root@qm86 /root]#uptime 
 09:41:39 up 867 days, 19:54,  1 user,  load average: 3.52, 0.73, 0.24

[root@qm86 /root]#date
Thu Mar 10 09:32:52 CST 2022

[root@qm86 /root]#dmesg -T | tail -1
[Fri Mar 11 05:44:08 2022] docker0: port 13(vethf341b34) entered disabled state

向dmesg中插入一条最新的数据,计算时间误差

[root@qm86 /root]#echo test > /dev/kmsg 

[root@qm86 /root]#dmesg -T | tail -1
[Fri Mar 11 05:44:43 2022] test

可以发现比真实的时间快了将近20个小时。

注意:

以上环境中配置有时钟服务器,并且服务器都进行了时间同步

查看dmesg的帮助文档

-T, --ctime
       Print human readable timestamps.  The timestamp could be inaccurate!
       The time source used for the logs is not updated after system SUSPEND/RESUME.

当系统被挂起或恢复会dmesg的时间不会更新。

将系统挂起再恢复进行测试

[root@node01 ~]# date
Thu Mar 10 10:17:30 CST 2022
[root@node01 ~]# echo test > /dev/kmsg
[root@node01 ~]# dmesg -T | tail -1
[Thu Mar 10 10:13:43 2022] test

可以发现dmesg的时间比真实时间慢了4分钟,符合dmesg帮助文档的解释,但是这个解释dmesg的时间永远都慢与系统时间,而不应该出现将来的时间这种情况。

总结

暂时还没有弄清楚为什么会出现dmesg的时间是将来的时间,在遇到需要查询dmesg日志,但是时间不对的情况下,可以先计算dmesg时间与系统时间的误差,然后再结合这个误差推算日志发生的真实时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值