【问题标题】:dmesg -T results in inconsistent timestampdmesg -T 导致时间戳不一致
【发布时间】:2015-03-31 19:36:51
【问题描述】:

这个问题与暂停/恢复问题有关!

对于同一事件,“dmesg”总是显示相同的时间戳,例如

[31765279.760248]

但是,当使用“dmesg -T”时,对于同一事件,它显示的秒数略有不同,例如调用dmesg -T | grep something | tail -1 两次结果:

[Thu Jan 29 01:12:39 2015] event details...
[Thu Jan 29 01:12:38 2015] event details...

我需要将事件与历史进行比较并对新事件采取行动。然而,这种差异使得无法使用简单的字符串比较。

作为一种解决方法,我在比较它们之前从字符串中剪下秒数。在这种情况下我可以这样做,因为我过滤的事件在 5 分钟内不会发生超过一次。

有人知道为什么会出现这种错误吗?

uname -a => Linux (hostname) 3.5.0-45-generic #68~precise1-Ubuntu SMP Wed Dec 4 16:18:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

【问题讨论】:

  • 我无法解释您所看到的不一致,但请允许我提出一个愚蠢的问题:您为什么不对原始值进行比较,然后在需要时手动将其转换为人类可读?
  • 我很懒 :) 我知道有几种解决方法,我正在使用一种,但我很想知道原因。感谢您的快速响应

标签: linux timestamp


【解决方案1】:

这些时间戳通过将它们添加到系统启动时间来转换为实时。如果系统出现在 1491516481.480856282 并且您向其添加小数偏移量,有时您会看到额外的整秒。

尚未检查代码,但可以肯定这就是原因。 Convert dmesg timestamp to custom date format 中有更多信息,包括我写的回复。

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 1970-01-01
    • 2017-07-27
    • 2011-12-02
    • 2015-12-08
    • 2018-11-27
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多