首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dmesg +如何启用dmesg历史日志

dmesg +如何启用dmesg历史日志
EN

Unix & Linux用户
提问于 2021-01-03 09:24:04
回答 1查看 2.3K关注 0票数 3

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

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

代码语言:javascript
复制
ls -ltr | grep dmesg

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

取而代之的是:

代码语言:javascript
复制
    -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
.
.
.

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

EN

回答 1

Unix & Linux用户

发布于 2021-08-31 09:44:34

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

如果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,因为RHEL7.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

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/627308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档