dmesg 命令使用总结

dmesg

打印或控制内核环形缓冲区

语法

dmesg [options]

描述

dmesg 常用于检查或控制内核环形缓冲区,默认的操作的是读取内核环形缓冲区的所有消息

选项

--clear, --read-clear, --console-on, --console-off--console-level 选项是相互排斥的

选项 描述
-C, --clear 清空环形缓冲区
-c, --read-clear 打印内容后清空环形缓冲区
-D, --console-off 禁止打印消息到控制台
-d, --show-delta 显示消息之间花费的时间戳和时间增量。 如果与--notime一起使用,则仅打印时间增量
-e, --reltime 以人类易读的格式显示本地时间和增量
-E, --console-on 允许打印消息到控制台
-F, --file file 从文件file中读取日志
-f, --facility list 将输出限制为已定义的设施列表(逗号分隔), dmesg --help查看所有支持的设施
-H, --human 启用人类可读输出
-h, --help 打印帮助信息并退出
-k, --kernel 打印内核消息
-L, --color 高亮重要消息
-l, --level list 将输出限制为已定义级别列表(逗号分隔),dmesg --help查看所有支持的级别
-n, --console-level 设置将消息记录到控制台的级别。 级别是级别编号或级别名称的缩写。
-P, --nopager 不将输出传输到pager,pager可以用于--human 输出
-r, --raw 打印原始消息缓冲区, 例如,不截断日志级别前缀。
-S, --syslog 强制使用syslog(2) 内核接口读取内核消息。从内核3.5.0 开始默认使用/dev/kmsg
-s, --buffer-size size 使用size大小的缓冲区来查询内核环缓冲区。 默认情况下为16392。 (默认内核syslog缓冲区大小最初为4096,自2.1.54以来为8192,自2.1.113以来为16384。)如果已将内核缓冲区设置为大于默认值,则此选项可用于查看整个缓冲区。
-T, --ctime 打印人类可读的时间戳。这个时间戳可能是不精确的。在系统SUSPEND/RESUME之后,不会更新用于日志的时间源。
-t, --notime 不打印内核时间戳
-u, --userspace 打印用户空间消息
-V, --version 输出版本信息并退出
-w, --follow 等待新消息。 仅具有可读/ dev / kmsg的系统(从内核3.5.0开始)支持此功能。
-x, --decode 将设施和级别(优先级)编号解码为人类可读前缀

-n补充说明: -n 1-n警报可防止除紧急(紧急)消息之外的所有消息出现在控制台上。 所有级别的消息仍然写入/proc/kmsg,因此syslogd(8)仍可用于精确控制内核消息的显示位置。 使用-n选项时,dmesg不会打印或清除内核环缓冲区。

-r补充说明: 请注意,真正的原始格式取决于dmesg(1)读取内核消息的方法。 /dev/kmsg使用与syslog(2)不同的格式。 为了向后兼容,dmesg(1)始终以syslog(2)格式返回数据。 来自/dev/kmsg的真实原始数据可以通过命令dd if=/dev/kmsg iflag = nonblock来读取