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

xan*_*eng 64 logs kernel dmesg

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

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

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

gee*_*aur 56

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

  • `klogd` 运行后,`dmesg` 将只显示最近的内核消息(因为环形缓冲区是固定大小,所以只能容纳这么多),没有时间戳或其他信息,而 `/var/log/messages ` 将根据 `logrotate` 的配置方式保留日志并包括时间戳(对于初始引导消息,这会稍微不准确,因为 `dmesg` 没有它们,所以 `klogd` 启动的时间用于从内核缓冲区)。 (11认同)
  • @xanpeng `dmesg` 只包含来自内核的消息,`/var/log/messages` 通常也包含来自应用程序的日志。 (6认同)
  • 那么`/var/log/messages` 和`dmesg` 会在`syslogd` 和/或`klogd` 启动后显示相同的日志(以不同的格式)? (4认同)

jll*_*gre 18

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


Bha*_*iya 8

  • 我们可以说它dmesg是 的子集/var/log/messages并且被维护在环形缓冲区中。
  • /var/log/messages包括所有系统消息,包括从系统启动到dmesg. 简而言之,来自dmesg的日志被转储到/var/log/messages.
  • /var/log/messages维护一般系统活动日志并dmesg仅维护内核日志。


Mug*_*hil 5

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

messages:它包含全局系统消息,包括系统启动期间记录的消息。登录的内容/var/log/messages包括邮件、cron、守护进程、kern、auth 等。