解释 dmesg 的输出

解释 dmesg 的输出

我正在运行 Debian 系统,并发现消息命令非常有用。

有人能向我解释一下 dmesg 命令输出了什么信息吗?它与 syslog 中的 kern.* 消息有 1:1 的相关性吗?

答案1

从技术上讲,dmesg 将内核环形缓冲区打印到标准输出。

我不知道为什么他们称它为环形缓冲区,但它基本上是一个日志缓冲区。所有内核启动消息都写入那里。如果您正在运行 syslog,那么所有这些消息或大多数消息也可能写入那里。但是,dmesg 命令与 syslog 是分开的。它是 linux 实用程序的一部分,即使您没有 syslog,也可以使用它。

dmesg 还可用于清除环形缓冲区本身,以及更改错误在控制台中显示的级别。有时,根据消息的严重性,除了环形缓冲区外,还会将其发送到每个控制台。一个很好的例子就是关机消息。dmesg -n levelnumber允许您更改必须发送到控制台(除了缓冲区)的消息的严重性级别。

答案2

引用手册页:

   dmesg is used to examine or control the kernel ring buffer.

很多消息也会发送到 syslog,但不是全部。此外,syslog 直到启动过程的后期才可用。

答案3

如上所述,dmesg 允许您转储内核环形缓冲区或控制它。通常您会收到启动消息,但是运行了一段时间并且有繁琐的内核消息的服务器很可能会被覆盖启动消息。大多数发行版都会在启动脚本中运行 dmesg,以将启动消息转储到日志文件 - 通常是 /var/log/dmesg。

当您遇到内核崩溃并需要查看崩溃转储时,内核环形缓冲区往往会发挥作用。您可能首先要查看的内容之一就是环形缓冲区的内容,它有望为您提供有关哪里出错的指示。当您遇到内核崩溃时,内核很可能没有机会将这些消息传递给系统日志,因此崩溃转储将是您能够看到它们的唯一地方。

答案4

Dmesg 打印或控制内核环形缓冲区。该程序可帮助用户打印出启动信息。

相关内容