我们有 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