dmesg输出和/ var / log / messages有什么区别?


55

AFAIK dmesg显示有关内核和内核模块的信息,/var/log/messages还显示内核和模块产生的信息。

那有什么区别呢?请问/var/log/messages 的输出dmesg

可能会有帮助的更多信息:
-有一个内核环形缓冲区,我认为这是存储内核日志数据的唯一位置。-IBM DeveloperWorks上的
文章“ 内核日志记录:API和实现 ”描述了API和鸟瞰图。

Answers:


51

dmesg打印环形缓冲区的内容。这些信息还会实时发送到syslogdklogd(在它们运行时),最终以形式发送给/var/log/messages;什么时候dmesg最有用是捕获之前syslogd和/或klogd开始的启动时消息,以便将它们正确记录。


4
那么/var/log/messagesdmesg在启动syslogd和/或klogd启动之后,它们会显示相同的日志(以不同的格式)吗?
xanpeng 2012年

10
klogd运行时,dmesg将只显示最新的内核信息(因为该环形缓冲器是一个固定的大小,因此可以仅容纳这么多),没有时间戳或其它信息,而/var/log/messages将根据如何保留日志logrotate被构造和包括时间戳(其对于初始启动消息,由于dmesg没有启动消息,因此会有些不准确,因此klogd开始时间用于从内核缓冲区读取的所有消息)。
geekosaur 2012年

6
@xanpeng dmesg仅包含来自内核的消息,/var/log/messages通常还包含来自应用程序的日志。
吉尔(Gilles)'所以

14

这取决于操作系统。例如,在Solaris上,dmesg只是一个shell脚本,显示/var/adm/messages.*文件的最后200行。


1
它也丰富多彩吗?
Hi-Angel

@ Hi-Angel无需对日志文件进行后期处理,因此无需着色cat ... | tail -200
jlliagre

6
  • 我们可以说这dmesg/var/log/messages环形缓冲区的子集,并在环形缓冲区中维护。
  • /var/log/messages包括所有系统消息,包括系统启动以来的消息以及中的消息dmesg。简而言之,来自dmesg的原木被倒入/var/log/messages
  • /var/log/messages维护常规系统活动日志,并且dmesg仅维护内核日志。

2

dmesg:dmesg是(显示或驱动程序)消息。它用于检查或控制内核环形缓冲区。

messages:它包含全局系统消息,包括系统启动期间记录的消息。有几项已登录,/var/log/messages包括mail,cron,daemon,kern,auth等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.