解释dmesg的输出

我正在运行Debian系统,并finddmesg命令的输出非常有用。

有人可以向我解释dmesg命令输出什么信息吗? 这与syslog中的kern。*消息是1:1相关的吗?

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

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

dmesg也可以用来清除环形缓冲区本身,也可以改变控制台出现错误的级别。 有时,根据消息的严重性,除了环形缓冲区以外,还会将其发送到每个控制台。 closures消息就是一个很好的例子。 dmesg -n levelnumber允许你改变消息必须发送给控制台以及缓冲区的严重程度。

引用该手册:

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

这些消息中的很多也会转到syslog,但不是全部。 此外,系统日志直到启动过程中的晚(r)才可用。

如前所述,dmesg允许您转储内核环缓冲区或控制它。 通常你会得到启动信息,但是服务器已经启动了一段时间,而且有很多内核消息,很可能会覆盖启动信息。 大多数发行版都将在启动脚本中运行dmesg,以将启动消息转储到日志文件 – 通常为/ var / log / dmesg。

内核环形缓冲区在您遇到内核恐慌和崩溃转储时往往会陷入其中。 你可能要看的第一件事情就是环形缓冲区的内容,希望能给你一个指针,指出哪里出了问题。 当你遇到恐慌时,内核很可能不会有机会将这些消息传递给系统日志,所以崩溃转储将是唯一可以看到它们的地方。

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