mil*_*luz 26 linux syslog dmesg
我正在运行一个从头开始构建的 Linux 操作系统。我想将内核消息缓冲区 (dmesg) 保存到一个文件中,该文件将在重新启动之间保持不变。
我试过运行 syslogd,但它只是打开了一个新的日志文件 /var/log/messages,既没有现有的内核消息缓冲区,也没有内核在 syslogd 启动后生成的任何新消息。
如何将内核消息缓冲区保存到持久日志文件中?
gol*_*cks 19
您需要查看/etc/rsyslog.conf或/etc/syslog.conf。如果您在早期有一条线路,例如:
*.* -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)
一切,包括来自 dmesg 的东西,都应该去那个文件。为了更好地瞄准它:
kernel.* -/var/log/dmesg
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因失败,您可以定期(例如通过 cron):
dmesg > /var/log/dmesg
Run Code Online (Sandbox Code Playgroud)
根据 dmesg 缓冲区的大小(这是编译到内核中,或通过log_buf_len参数设置)以及系统启动的时间,这将保留内核日志自启动以来的记录。
如果要将 dmesg 输出连续写入文件,请使用 -w (--follow) 标志。
dmesg --follow > mydmesg.log
Run Code Online (Sandbox Code Playgroud)