带有 dmesg 时间戳的 Linux Centos

edo*_*tan 15 linux centos dmesg

我想用时间戳读取我的 Centos 5.x dmesg,我该怎么做?

Chr*_*ell 11

dmesg读取内核日志环形缓冲区。它不做时间戳。您应该做的是配置 syslog 以从该缓冲区获取内核日志并将它们发送到文件(如果尚未设置为这样做)。请注意,/var/log/messages我记得,默认的 CentOS 5.x syslog 配置将内核日志发送到。

如果您想/var/log/kern.log使用默认的 syslog 守护程序将所有内核 (dmesg) 日志发送到,您需要添加如下一行/etc/syslog.conf

kern.*                         /var/log/kern.log
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的回答。对于任何正在运行 CentOS 6 的人,我在`/etc/rsyslog.conf` 中找到了它 (4认同)

小智 9

有解决方案“为 dmesg/内核环缓冲区启用时间戳”

你可以添加:

printk.time=1
Run Code Online (Sandbox Code Playgroud)

到内核​​命令行。

至于我,我已经在所有带有 puppet 的机器上添加到 rc.local。对我来说更容易):

if test -f /sys/module/printk/parameters/time; then
   echo 1 > /sys/module/printk/parameters/time
fi
Run Code Online (Sandbox Code Playgroud)

  • 使用 `rc.local` 真的是一个丑陋的解决方案(使用 `rc.local` 几乎总是一个丑陋的解决方案)。更好的解决方案是将 `printk.time = 1` 放入 `/etc/sysctl.conf` 或 `/etc/sysctl.d/` 中的文件。这就是这些文件存在的原因。把东西塞进 `rc.local` 最终会让你的启动变得脆弱、复杂、凌乱、不可靠。 (5认同)