目录
一、命令介绍
二、 基本用法
1、语法结构
2、选项
3、支持的日志设施:
4、支持的日志级别(优先级):
四、基本用法
1. 查看内核消息:
2. 实时查看内核消息:
3. 清空内核消息:
五、 高级用法
1. 过滤消息:
2. 查看消息级别:
4、特别提醒
六、dmesg主要的应用场景
1. 系统启动和初始化阶段的问题诊断:
2. 硬件相关问题的调试:
3. 内核错误和警告的查看:
4. 动态观察系统事件:
5. 清除内核消息缓冲区:
6. 系统性能分析和调优:
七、系统运维中的应用和实例
1. 查看系统启动时的内核信息,包括诊断硬件和驱动相关信息
2. 实时监控系统事件:
3. 过滤特定消息:
4. 设置日志级别:
5. 清除内核消息缓冲区:
dmesg命令 在Linux系统中用于显示或控制内核环形缓冲区的内容。`dmesg`命令允许用户查看或操作内核消息,这些消息通常记录了系统启动过程、硬件检测、驱动加载、系统错误等关键信息。
在linux系统的命令行中输入:man dmesg,可以看到dmesg的详细解释,如下图示:

语法结构:
dmesg [选项]
选项如下:
-C, --clear 清除内核环形缓冲区(ring butter)
-c, --read-clear 读取并清除所有消息
-D, --console-off 禁止向终端打印消息
-d, --show-delta 显示打印消息之间的时间差
-e, --reltime 以易读格式显示本地时间和时间差
-E, --console-on 启用向终端打印消息
-F, --file <文件> 用 文件 代替内核日志缓冲区
-f, --facility <列表> 将输出限制为定义的设施
-H, --human 易读格式输出
-k, --kernel 显示内核消息
-L, --color 显示彩色消息
-l, --level <列表> 限制输出级别
-n, --console-level <级别> 设置打印到终端的消息级别
-P, --nopager 不将输出通过管道传递给分页程序
-r, --raw 打印原生消息缓冲区
-S, --syslog 强制使用 syslog(2) 而非 /dev/kmsg
-s, --buffer-size <大小> 查询内核环形缓冲区所用的缓冲区大小
-T, --ctime 显示易读的时间戳(如果您使用了
SUSPEND/RESUME 则可能不准)
-t, --notime 不打印消息时间戳
-u, --userspace 显示用户空间消息
-w, --follow 等待新消息
-x, --decode 将设施和级别解码为可读的字符串
-h, --help 显示此帮助并退出
-V, --version 输出版本信息并退出
kern - 内核消息
user - 随机的用户级消息
mail - 邮件系统
daemon - 系统守护进程
auth - 安全/认证消息
syslog - syslogd 内部生成的消息
lpr - 行打印机子系统
news - 网络新闻子系统
emerg - 系统无法使用
alert - 操作必须立即执行
crit - 紧急条件
err - 错误条件
warn - 警告条件
notice - 正常但重要的条件
info - 信息
debug - 调试级别的消息
dmesg
这个命令将显示内核环形缓冲区中的所有消息。
dmesg -w
使用`-w`选项,你可以实时查看新的内核消息。这对于观察系统动态或调试问题非常有用。
dmesg --clear
或者简写为:
dmesg -c
这将清空内核环形缓冲区,删除所有当前的消息。
`dmesg`是Linux系统管理员和开发者在诊断系统问题、调试硬件或驱动程序时经常使用的工具。它提供了对系统内部状态的直接访问,特别是一些高级用法,有助于快速识别和解决问题。
使用`grep`命令结合`dmesg`可以过滤出特定的消息。例如,如果你想查找与某个驱动相关的消息,可以这样做: dmesg | grep "driver_name"
输入命令:
dmesg | grep "/dev/mapper/cl-root"
在centos中,实际效果如下所示:
内核消息有不同的级别,如`alert`、`crit`、`err`、`warning`、`notice`、`info`、`debug`等。你可以使用`dmesg`的`--level`选项来查看特定级别的消息。例如:
dmesg --level=notice
这将只显示“notice”级别的消息。
在centos中,实际效果如下所示:
(1) `dmesg`命令显示的消息通常是内核产生的,因此它们通常与底层硬件和系统状态有关。
(2) 由于内核消息是循环存储的,所以旧的消息可能会被新的消息覆盖。因此,如果你正在调查某个问题,最好尽快使用`dmesg`捕获相关信息。
(3) 实时查看内核消息(使用`-w`选项)可能会产生大量的输出,特别是在系统繁忙时。确保你有足够的信息来过滤或处理这些消息。
`dmesg`是一个强大的工具,具有广泛的应用,可以帮助Linux管理员和开发者深入了解系统的内部状态和事件,从而更有效地诊断和解决问题。`dmesg`命令通常在以下几种情况下被使用:
在Linux系统启动过程中,内核会输出大量的信息到内核环形缓冲区,这些信息包括硬件检测、驱动加载、文件系统挂载等。如果系统启动失败或某些功能无法正常工作,管理员通常会使用`dmesg`来查看这些启动信息,以便诊断问题所在。
当硬件出现问题,如设备无法识别、驱动不兼容或硬件故障时,`dmesg`可以提供关于硬件与内核交互的详细信息。这些信息对于确定硬件问题的原因以及如何解决它们非常有帮助。
如果系统出现内核错误或警告,这些消息通常会被写入内核环形缓冲区。使用`dmesg`可以迅速查看这些错误或警告,以便管理员或开发者了解问题的性质和可能的解决方案。
使用`dmesg -w`选项可以实时查看内核产生的新消息。这对于观察系统动态、监控硬件状态或调试正在运行的系统问题非常有用。
在某些情况下,管理员可能需要清除内核消息缓冲区,以便只查看最新的系统事件。这可以通过`dmesg --clear`或`dmesg -c`命令实现。
虽然`dmesg`主要用于错误和警告信息的查看,但有时它也可以提供有关系统性能的信息。例如,如果某个设备或驱动导致系统性能下降,`dmesg`的输出可能包含相关的提示或警告。
在Linux系统运维中,`dmesg`命令是一个非常重要的工具,主要用于问题诊断和系统调试。可以帮助运维人员深入了解系统的内部状态和事件,从而更有效地诊断和解决问题。通过结合其他命令和选项,运维人员可以更加灵活地利用`dmesg`进行系统监控和故障排查。以下是一些`dmesg`在Linux系统运维中的具体用法:
在系统启动过程中,内核会输出大量关于硬件检测、驱动加载、文件系统挂载等的信息,以及硬件与内核交互的详细信息。使用`dmesg`可以查看这些启动信息,帮助运维人员了解系统启动过程中的状态和可能存在的问题。
当系统出现硬件故障或驱动不兼容等问题时,通过查看`dmesg`输出,运维人员可以了解硬件设备的状态、驱动程序的加载情况以及可能的错误或警告信息,从而进行针对性的排查和修复。
输入命令:
dmesg
在centos中,实际效果如下所示:
数量太多,用了“......................”省略了中间的部分。
使用`dmesg -w`选项可以实时查看内核产生的新消息。这对于运维人员观察系统动态、监控硬件状态或调试正在运行的系统问题非常有用。通过实时查看`dmesg`输出,运维人员可以及时发现并解决潜在的系统问题。
输入命令:
dmesg -w
在centos中,实际效果如下所示:

可以看出,输出没有停下来,继续实时输出信息。
由于`dmesg`输出的消息量可能很大,运维人员可以使用管道和`grep`命令来过滤特定的消息。例如,可以使用`dmesg | grep "interrupt"`来只显示包含“interrupt”关键字的消息,从而快速定位错误或警告信息。
输入命令:
dmesg | grep "interrupt"
在centos中,实际效果如下所示:
通过指定日志级别,运维人员可以控制`dmesg`输出的信息范围。例如,使用`dmesg --level=err`将只显示错误级别的消息,这有助于聚焦关键问题并减少干扰信息。
输入命令:
dmesg --level=err
在centos中,实际效果如下所示:
在某些情况下,运维人员可能需要清除内核消息缓冲区以释放空间或仅关注最新的系统事件。可以使用`dmesg --clear`或`dmesg -C`命令来清空内核环形缓冲区。
输入命令:
dmesg --clear
在centos中,实际效果如下所示:
可以看出,清楚以后,暂时没有任何信息了。
篇幅有限,文章正下方可以看到我的联系方式。
鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12693.html