Answers:
是的,所有这些都与日志记录有关。不,它与运行级别或“保护环”无关。
内核将其日志保存在环形缓冲区中。这样做的主要原因是要保存系统启动中的日志,直到syslog守护程序有机会启动并收集它们为止。否则,在启动syslog守护程序之前将没有任何日志的记录。使用该dmesg
命令可以随时查看该环形缓冲区的内容,并且/var/log/dmesg
在启动syslog守护程序时,还可以将其内容保存到该缓冲区中。
所有不是来自内核的日志都会在生成时发送到syslog守护程序,因此它们不会保留在任何缓冲区中。内核日志在生成时也由syslog守护程序获取,但它们也将继续保存(不必要地,有争议)到环形缓冲区。
可以在syslog(3)联机帮助页中看到日志级别,如下所示:
每个级别的设计均不如前一个级别“重要”。在一个级别记录日志的日志文件也将在所有更重要的级别记录日志。
/var/log/kern.log
和之间的区别/var/log/mail.log
(例如)与级别无关,而与设施或类别有关。类别也记录在手册页上。
/var/log/kern.log
应该包含dmesg
启动时的内容(也许格式不同)。除非自启动以来已经过了很长时间,并且这些内容已被转出。
dmesg
打印出内核环形缓冲区的当前值时,该缓冲区的过去/旧值存储在中/var/log/dmesg
。因此,dmesg
输出只是/var/log/dmesg
内容的最新子集 ,它们是不同的。然后,内容/var/log/dmesg
(不是dmesg
您的评论中的内容)/var/log/kernel.log
是否相同?
/var/log/dmesg
内容可能会在的结尾/var/log/kern.log
。不久以后,它就不会出现了,它将旋转出去。通常,/var/log/kern.log
将包含比内核日志环缓冲区的任何给定快照都旧的日志,以及比快照新的日志。
至少回答您有关以下内容的第一部分dmesg
:
/var/log/dmesg
存储“内核环形缓冲区”的内容,“内核环形缓冲区”是内核在启动时创建的内存缓冲区,一旦您超过引导加载程序阶段,它就会在其中存储它生成的日志数据。
环形缓冲区是一种特殊的缓冲区,始终保持恒定大小,当新消息进入时会删除最旧的消息。存储在内核环形缓冲区中的文本是您在首次引导Unix时在屏幕上看到的闪烁内容。控制台模式的类似机器(无启动画面,普利茅斯)。内核日志存储在内存缓冲区中,以便引导日志位于某个地方,直到系统将自身引导至syslog
守护程序可以接管的地步为止。
dmesg
Linux下的操作系统是util-linux
kernel.org发布的系统维护工具必不可少的软件包的一部分。根据dmesg(1)
手册页,
dmesg用于检查或控制内核环形缓冲区。
请参阅:http://www.computerhope.com/unix/dmesg.htm
在'systemd'初始化下,此命令可用于打印内核环形缓冲区:
# journalctl --dmesg or journalctl -k
,用于校正@don_crissti的thxs
dmesg | grep -i ethernet
例如,发出命令将解析内核环形缓冲区中的字符串“ ethernet”。
我希望这至少对您查询的第一部分有所帮助。
/var/log/kern.log
并且/var/log/dmesg
应该具有相同的内容为核心的信息?但是它们的内容并不相同。