dmesg (检查或控制内核环缓冲区)

rose1 发表于 2020-08-31 09:05
浏览次数:
在手机上阅读

在Linux操作系统上,dmesg命令检查或控制内核环缓冲区。 内核环缓冲区是一种记录与内核操作相关的消息的数据结构。环形缓冲区是一种特殊种类的缓冲区,它始终是恒定大小,当新消息进来时,删除最早的消息。

查看英文版

目录

1 dmesg 运行系统环境

2 dmesg 语法

3 dmesg 例子

dmesg 运行系统环境

Linux

dmesg 语法

dmesg [options]

选件

-C--clear

清除环形缓冲区。

-c--read-clear

打印后清除环形缓冲区的内容。

-D--console-off

禁用向控制台打印消息。

-d--show-delta

显示时间戳和消息之间花费的时间增量。如果与--notime一起使用,则仅打印不带时间戳记的时间增量。

-E--console-on

启用将消息打印到控制台。

-f--facility list

将输出限制为已定义的(用逗号分隔)功能列表。有关所有受支持的功能,请参阅--help输出。

-h--help

打印帮助文本并退出。

-k--kernel

打印内核消息。

-l--level list

将输出限制为已定义(用逗号分隔)的级别列表。有关所有受支持的级别,请参见--help输出。

-n--console-level level

设置将消息记录到控制台的级别。级别是级别编号或级别名称的缩写。例如,-n 1或-n alert阻止控制台上显示除紧急(紧急)消息以外的所有消息。所有级别的消息仍会写入/ proc / kmsg,因此syslogd(8)仍可用于精确控制内核消息出现的位置。使用-n选项时,dmesg将不会打印或清除内核环形缓冲区。有关所有受支持的级别,请参见--help输出。

-r--raw

打印原始消息缓冲区,即,不要去除日志级别前缀。

-s--buffer-sizesize

使用大小缓冲区来查询内核环形缓冲区。默认为16392。如果您将内核缓冲区设置为大于默认值,则可以使用此选项查看整个缓冲区。

-T--ctime

打印人类可读的时间戳。时间戳记可能不正确;在系统挂起/恢复后,用于日志的时间源不会更新。

-t--notime

不要打印内核的时间戳。

-u--userspace

打印用户空间消息。

-V--version

输出版本信息并退出。

-x--decode

将设施和级别(优先级)编号解码为人类可读的前缀。

dmesg的默认操作是从内核环形缓冲区读取所有消息。

dmesg [options]

Options

-C--clear

Clear the ring buffer.

-c--read-clear

Clear the ring buffer contents after printing.

-D--console-off

Disable printing messages to the console.

-d--show-delta

Display the timestamp and time delta spent between messages. If used with --notime then only the time delta without the timestamp is printed.

-E--console-on

Enable printing messages to the console.

-f--facility list

Restrict output to defined (comma separated) list of facilities. For all supported facilities see --help output.

-h--help

Print a help text and exit.

-k--kernel

Print kernel messages.

-l--level list

Restrict output to defined (comma separated) list of levels. For all supported levels see --help output.

-n--console-level level

Set the level at which messages are logged to the console. The level is a level number or abbreviation of the level name. For example, -n 1 or -n alert prevents all messages except emergency (panic) messages from appearing on the console. All levels of messages are still written to /proc/kmsg, so syslogd(8) can still be used to control exactly where kernel messages appear. When the -n option is used, dmesg will not print or clear the kernel ring buffer. For all supported levels see --help output.

-r--raw

Print the raw message buffer, i.e., don't strip the log level prefixes.

-s--buffer-sizesize

Use a buffer of size to query the kernel ring buffer. This is 16392 by default. If you have set the kernel buffer to be larger than the default then this option can be used to view the entire buffer.

-T--ctime

Print human readable timestamps. The timestamp could be inaccurate; The time source used for the logs is not updated after system SUSPEND/RESUME.

-t--notime

Don't print kernel's timestamps.

-u--userspace

Print userspace messages.

-V--version

Output version information and exit.

-x--decode

Decode facility and level (priority) number to human readable prefixes.

The default action of dmesg is to read all messages from kernel ring buffer.

查看英文版

查看中文版

dmesg 例子

dmesg > kernel_msgs.txt

将当前在环形缓冲区中的所有内核消息输出到名为kernel_msgs.txt的文件中。

dmesg | grep -i memory

仅显示与内存使用有关的内核消息。

dmesg > kernel_msgs.txt

Output all kernel messages currently in the ring buffer to a file called kernel_msgs.txt.

dmesg | grep -i memory

Display only those kernel messages which relate to memory usage.

查看英文版

查看中文版

其他命令行

date | du | dpost | dirname | dircmp | dd | deluser | depmod | deroff | df | dhclient | diff | dos2unix | dig |

如此好文,分享给朋友
发表评论
验证码:
评论列表
共0条