RHEL9找不到/var/log/dmesg日志文件问题

问题描述

在Rocky Linux 9 服务器上查看启动日志,发现没有/var/log/dmesg文件。

dmesg是什么?

dmesg(diagnostic messages)用于打印kernel ring buffer的所有消息。 kernel会将开机信息存储在ring buffer中,如果开机时来不及查看启动信息,可以通过dmesg命令查看。

Kernel ring buffer(内核环形缓冲区)是一种在Linux内核中使用的数据结构,用于在生产者(如硬件设备、驱动程序或内核线程)和消费者(如用户空间应用程序)之间传输数据。 这种缓冲区通常用于日志记录、性能监控、事件跟踪等场景。

RHEL9找不到/var/log/dmesg日志文件的原因

参考:https://access.redhat.com/solutions/3748981,这里摘录如下:

By design, the /var/log/dmesg file is not generated during boot. The kernel ring buffer is captured within the systemd-journal as well as /var/log/messages, via the imjournal rsyslog plugin.

翻译一下: 根据设计,在RHEL8/RHEL9中,启动期间不会自动生成/var/log/dmesg文件。 内核环形缓冲区(kernel ring buffer)的消息通常会被systemd-journa捕获,存储在/var/log/messagesjournalctl中。这种设计可以提供更现代化的日志管理方式,支持更好的搜索和过滤功能

解决方法

手动执行dmesg生成日志文件

dmesg > /var/log/dmesg

或者使用 journalctl命令

journalctl -k | tee /var/log/dmesg

参考

【1】https://en.wikipedia.org/wiki/Dmesg
【2】https://www.getpagespeed.com/solutions/the-var-log-dmesg-file-is-not-created-during-boot-for-rocky-linux-8

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用 logrotate 工具来定期打包 /var/log/messages 日志文件logrotate 工具可以在特定的时间间隔或者日志文件大小达到一定阈值时,自动对日志文件进行打包、压缩、删除等操作。 具体实现步骤如下: 1. 安装 logrotate 工具 在大多数 Linux 发行版中,logrotate 工具已经预装了,您可以通过以下命令检查是否已经安装: ``` logrotate --version ``` 如果没有安装,则可以使用以下命令安装: ``` yum install logrotate # CentOS/RHEL 系统使用的命令 apt-get install logrotate # Debian/Ubuntu 系统使用的命令 ``` 2. 编写 logrotate 配置文件 在 /etc/logrotate.d/ 目录下新建一个名为 messages 的配置文件,内容如下: ``` /var/log/messages { daily rotate 7 compress delaycompress missingok notifempty create 0600 root root } ``` 解释一下各个参数的含义: - daily:表示执行日志轮转的时间间隔为一天。 - rotate 7:表示保留最近的7个日志文件,旧的日志文件会被自动删除。 - compress:表示对日志文件进行压缩。 - delaycompress:表示延迟压缩,意思是在下一次轮转时才对上一次轮转的日志文件进行压缩。 - missingok:表示如果日志文件不存在,则忽略该文件,不报错。 - notifempty:表示如果日志文件为空,则不进行轮转。 - create 0600 root root:表示创建新的日志文件时,设置文件权限为 0600,属主和属组为 root。 3. 手动执行 logrotate 命令 手动执行以下命令,可以测试一下是否配置成功: ``` logrotate -vf /etc/logrotate.d/messages ``` -vf 参数表示显示详细的执行过程。 4. 配置定时任务 最后,您可以使用 crontab 工具来设置定时任务,以便每天自动执行 logrotate 命令。打开 crontab 编辑器: ``` crontab -e ``` 在编辑器中添加以下一行: ``` 0 0 * * * /usr/sbin/logrotate -f /etc/logrotate.d/messages ``` 以上命令表示每天0点整执行一次 logrotate 命令,-f 参数表示强制执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pcj_888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值