Skip to main content

打印 dmesg/kmsg/printk 时间戳的实用程序,考虑到漂移。

项目描述

以本地时间和日期、UTC 或纪元秒查看 kmsg/printk/dmesg 时间戳的实用程序,这些时间戳解释了漂移。

printk 时钟与本地时钟(一个 ntp 提供的)相比,通常会漂移很多。如果直接转换,这可能会导致完全不同和不正确的值(例如在某些 dmesg 上使用 dmesg -T)。此应用程序支持记录和标记漂移,并使用它来计算更准确的时间戳。

为什么不使用“dmesg -T”

如前所述,dmesg -T 与 dmesg_format_dates –drift=0 相同,并且随着时间的推移变得不准确,因为滴答时钟受频率缩放等影响。

因此,建议有一个运行printk_mark_drift的 cron 作业,如下所述,可能每隔半天运行一次,以保持准确。或多或少取决于所需的精度和系统的平均漂移。

您可以使用dmesg_get_drifts应用程序显示所有当前标记的漂移,以衡量您的系统时钟有多不准确。

样本

这是一个示例,显示了可能会出现的不准确性:

一、说明dmesg不能处理printk漂移

[cmd]$ 日期;sudo bash -c 'echo “Hello World” > /dev/kmsg'; dmesg -T | grep '你好世界' | 尾-n1

2015 年 9 月 9 日星期三 01:13:56 EDT

[2015 年 9 月 9 日星期三 01:14:31] 你好世界

接下来,显示 dmesg_format_dates 确实适用于 printk 漂移

[cmd]$ 日期;sudo bash -c 'echo “Hello World” > /dev/kmsg'; ./dmesg_format_dates | grep '你好世界' | 尾-n1

2015 年 9 月 9 日星期三 01:14:11 EDT

[2015 年 9 月 9 日星期三 01:14:11] 你好世界

应用

dmesg_format_dates

此应用程序运行“dmesg”(或者您可以通过管道输入预先记录的 dmesg,例如从日志中)并使用计算出的漂移来获得准确的时间戳。

运行此命令以输出内核日志,将 printk 时间戳替换为计算出的时间戳(采用多种格式之一),同时考虑漂移。

输出

支持的输出模式有:

  • 当地时间(默认) -l 或 --local 。标准“ctime”格式,包括本地时区信息

  • UTC -u 或 --utc 。以 UTC 给出的标准“ctime”格式(无时区,也称为 GMT 或 Zulu)

  • 纪元-e 或 --epoch 。UNIX 纪元时间。自 1970 年 1 月 1 日以来的秒数

亚秒级

本地时间和 UTC 的输出以 ctime 格式给出,其分辨率为 1 秒。

您也可以传递-s--subsec以在输出中添加亚秒。

这将输出 2 位有效数字的亚秒(精度 +- 10 毫秒),这是正常运行时间时钟可用的最大值。

Epoch 模式始终输出亚秒级。

printk_mark_drift

向 kmsg 日志添加漂移标记。这些用于计算漂移。您拥有的这些越多,您的时间戳就越准确。

在使用 dmesg_format_dates 时,您应该考虑让 cron 作业每隔几个小时标记一次日志,以获得最新的准确性

dmesg_get_drifts

此应用程序将显示 dmesg 日志中的漂移(时间戳,时钟在该点漂移了多少)。

使用它来分析您的机器漂移了多少,以确定您应该多久标记一次漂移(以获得准确的时间戳)

printk_time_convert

此应用程序采用单个时间戳并将其转换为本地 ctime、utc ctime 或纪元时间戳。如果最近的一个不可用,它将添加一个漂移注释。

输出

printk_time_convert 的输出模式与 dmesg_format_dates 相同。有关使用选项,请参见上文,或 --help。

如何配置我的 kmsg 以记录时间戳?

将 /sys/module/printk/parameters/time 的值设置为“Y”(例如 echo “Y” > /sys/module/printk/parameters/time)

模块

这个包提供了 printk_timestamp_converter,这是一个可以直接使用的 python 模块。

pydoc 文档可在此处获得:http ://htmlpreview.github.io/?https://github.com/kata198/printk-timestamp-formatter/blob/master/doc/printk_timestamp_converter.html

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

printk-timestamp-converter-4.0.0.tar.gz (21.7 kB 查看哈希

已上传 source