Linux下 Bash 向内核写日志, 写dmesg可以看的日志
目录
在 Bash 中向系统写日志,使其能被 dmesg 查看,可以通过向 /dev/kmsg 写入,因为这个设备文件专门用于向内核消息缓冲区发送信息。你也可以使用 logger 命令向系统日志(如 syslog)发送消息,这同样可以查看,但它不会直接出现在 dmesg 输出中,而是出现在 /var/log 下的其他日志文件中,可以通过 journalctl 或其他日志查看工具查看。
使用 /dev/kmsg 写入日志
这是最直接的方法,可以直接将信息写入内核日志缓冲区,从而出现在 dmesg 的输出中。
- 命令:
echo "你的日志消息" | sudo tee /dev/kmsg - 解释:
echo "你的日志消息":输出要写入的日志文本。sudo tee /dev/kmsg:将echo的输出通过tee命令同时输出到标准输出(屏幕)和/dev/kmsg。需要sudo权限来写入/dev/kmsg。
使用 logger 命令写入日志
logger 命令是向系统日志发送消息的通用工具,它的日志会写入到 /var/log 下的不同文件中,而不是 dmesg 的缓冲区。
- 命令:
logger "你的日志消息" - 解释:
logger "你的日志消息":将消息记录到系统日志中。- 你可以使用
journalctl -f来实时查看日志,或者直接查看/var/log/syslog或/var/log/messages文件。
总结
- 如果希望日志出现在
dmesg的输出中,请使用echo "你的日志消息" | sudo tee /dev/kmsg。 - 如果只想将日志记录到系统日志中,并使用
journalctl或tail -f /var/log/syslog等命令查看,可以使用logger "你的日志消息"。