跳至主要内容

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

项目描述

实用程序,用于以本地时间、UTC或纪元秒查看kmsg/printk/dmesg时间戳,并考虑漂移。

printk时钟与本地时钟(由ntp提供)的偏移量很大,通常很大。这会导致直接转换(如某些dmesg的-dmesg -T可用)时出现极大且不正确的时间值。此应用程序支持记录和标记漂移,并使用该信息计算更精确的时间戳。

为什么不是“dmesg -T”

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

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

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

示例

以下是一个示例,说明可能会渗入的不准确性

首先,显示dmesg无法处理printk漂移

[cmd]$ date; sudo bash -c ‘echo “Hello World” > /dev/kmsg’; dmesg -T | grep ‘Hello World’ | tail -n1

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

[2015年9月9日 星期三 01:14:31] Hello World

接下来,展示dmesg_format_dates与printk漂移一起工作的效果

[cmd]$ date; sudo bash -c ‘echo “Hello World” > /dev/kmsg’; ./dmesg_format_dates | grep ‘Hello World’ | tail -n1

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

[2015年9月9日 星期三 01:14:11] Hello World

应用程序

dmesg_format_dates

该应用程序运行“dmesg”(或您也可以输入预先录制的dmesg,例如从日志中),并使用计算出的漂移来推导准确的日期和时间戳。

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

输出

支持以下输出模式:

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

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

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

秒以下部分

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

您也可以传递-s--subsec 以向输出添加秒以下部分。

这将输出秒以下部分的两位有效数字(精度±10ms),这是从uptime时钟中可用的最大精度。

纪元模式始终输出秒以下部分。

printk_mark_drift

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

您应该考虑每小时标记日志几次,以便在使用dmesg_format_dates时获得精确到秒的准确性。

dmesg_get_drifts

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

使用此功能分析机器的漂移量,以确定应标记漂移的频率(以获得准确的时间戳)。

printk_time_convert

此应用程序将单个时间戳转换为本地ctime、utc ctime或epoch时间戳。如果没有可用的新近漂移,它将添加漂移注释。

输出

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 查看哈希)

上传时间 源代码

由以下支持