dmesg + 如何启用 dmesg 历史日志

dmesg + 如何启用 dmesg 历史日志

我们有 RHEL 服务器版本 7.2,我们注意到dmesg之前会话中的文件/var/log未创建

我们所拥有的/var/log只是

ls -ltr | grep dmesg

-rw-r--r--  1 root   root    123011 Jan  3 04:03 dmesg

相反,像:

    -rw-r--r--  1 root   root    123011 Jan  3 04:03 dmesg.0
    -rw-r--r--  1 root   root    123011 Jan  2 04:03 dmesg.1
    -rw-r--r--  1 root   root    123011 Jan  1 04:03 dmesg.2
.
.
.

能够在备份文件中保存旧内核消息的配置是什么?

答案1

我不确定下面的解决方案是否可以解决您的问题,因为它看起来太简单了(考虑到您的代表)。但我们开始吧:

如果您有Storage=auto/etc/systemd/journald.conf这是我见过的大多数安装中的默认设置),您只需创建目录/var/log/journal.通过该设置,systemd-journald如果该目录存在,则将日志存储在该目录中,但如果不存在,则仅将日志存储在内存中(当然,关闭时会忘记它们)。创建目录后,您应该执行systemd-tmpfiles --create --prefix /var/log/journal并重新启动systemd-journald

也许您可以配置systemd-journald为使用日志文件的另一个位置,但这超出了我(当前)的知识范围(我从来不需要这样做,因此没有研究必要的步骤)。

如果您有Storage=persistent,/etc/systemd/journald.conf/var/log/journal在需要时自动创建。

为了完整起见,Storage=volatile意味着日志数据将仅存储在内存中(并且在关闭时将被遗忘),并且Storage=none完全阻止任何存储。如果您想查看以前启动的日志,则必须避免这两个。

所有这些设置都在 中得到了很好的解释man journald.conf

请注意,上述解决方案与 相关systemd,因此适用于 OP,因为 RHEL 7.2 基于systemd

如果您坚持要备份旧的启动日志(尽管您已经可以使用标准配置查看它们),您可以简单地发出journalctl -b <N> > demsg.<N>,例如,journalctl -b 1 > dmesg.1将最旧记录的启动日志保存到文件中dmesg.1

因此,你的问题的答案(能够保存备份文件中的旧内核消息的配置是什么) 是:

  • 我不知道有任何配置设置可以根据这些dmesg文件来执行此操作。
  • 当然,您可以编写一个脚本来轮换dmesg文件,并让它在每次启动后或每次关闭前运行。
  • 但是,您可以按照我上面概述的过程以更好(更简单)的方式实现您的目标。

不幸的是,该解决方案不适合花费赏金的人:它不适用于 OpenRC,因为 OpenRC 不是基于systemd(如果我的赏金声明正确的话)。在OpenRC中,可能还有其他方法可以解决问题,但由于我从未听说过,所以我无能为力。

参考:

https://gist.github.com/JPvRiel/b7c185833da32631fa6ce65b40836887

相关内容