使用dmesg查看实时系统日志

在 Linux 系统中,dmesg(display message)是一个非常底层的命令,主要用于读取和控制内核的环形缓冲区(Ring Buffer)。
简单来说,它是内核的“行车记录仪”,记录了硬件检测、驱动加载、内核模块启动以及严重的系统级报错(如内存溢出、分段错误等)。
dmesg 记录了什么?
由于它记录的是内核层面的信息,你会在这里看到:
硬件自检:CPU 的型号、内存的大小、网卡的 MAC 地址。
驱动加载:显卡驱动是否成功启用、USB 设备拔插记录。
文件系统:挂载磁盘时的报错、文件系统受损。
系统杀手:当系统内存不足时,OOM Killer 杀掉某个进程的记录。
2、常用操作指令
直接查看:dmesg(内容可能非常多,建议配合 less 使用)。
可读时间戳:dmesg -T(默认是相对于系统启动的秒数,-T 可以转为 20xx-01-13 16:45 这种人类可读格式)。
实时监控:dmesg -w(类似 tail -f,当你插入 U 盘或发生硬件故障时,日志会滚动更新)。
清空缓冲区:dmesg -C(清空后之前的记录就看不到了,通常用于调试新问题前排除干扰)。
按级别查看(故障排障):dmesg -l err,crit # 仅列出 错误(error) 和 严重(critical) 级别的信息

3、什么时候该用 dmesg?
在实际工作中,如果遇到以下情况,第一个想到的命令应该是 dmesg:
服务器发生内存溢出:通过 dmesg 可以马上看到内存溢出的进程和原因。
新买的硬件不工作:插入网卡或外接设备后,看 dmesg 是否识别到了新硬件。
进程莫名其妙消失:如果程序占用内存太大,dmesg 会显示 Out of memory: Kill process(即著名的 OOM Killer)。
磁盘读写极慢:查看是否有 I/O error 或文件系统检测报错。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注