dmesg 中出现重复日志是比较常见的现象,通常不是 bug,而是由以下几种原因之一或多种叠加导致的。下面按常见程度给你梳理一下。
Linux 内核日志会通过多个通道输出:
dmesg 读的就是它)如果你同时看:
dmesg
journalctl -k
cat /var/log/messages
可能会觉得“重复”,其实是同一事件被多个系统记录。
某些驱动或内核模块在初始化或出错时,会:
printk例如:
这类“重复”是真实发生的行为,不是显示问题。
dmesg 显示的是 环形缓冲区:
你可以用下面命令看 buffer 大小:
dmesg | wc -l
cat /proc/sys/kernel/printk
例如一条错误可能来自:
结果你看到:
usb 1-1: device descriptor read/64, error -71
usb 1-1: device descriptor read/64, error -71
其实是不同层级在报同一件事。
在以下环境中更容易看到重复:
比如:
有时候你看到“重复”,其实是:
dmesgdmesg -T 和 dmesg 混看你可以试试:
# 看是否完全一模一样
dmesg | sort | uniq -c | sort -nr | head
如果计数 >1,说明是真实重复事件或多次打印。
dmesg -n 3
/etc/rsyslog.conf 避免重复写如果你愿意,可以把具体重复的 dmesg 片段贴出来,我可以直接帮你判断是哪一种原因。