答案1
是的,所有这些都与日志记录有关。不,这些都与运行级别或“保护环”无关。
内核将其日志保存在环形缓冲区中。这样做的主要原因是为了保存系统启动时的日志,直到 syslog 守护进程有机会启动并收集它们。否则,在 syslog 守护程序启动之前将不会记录任何日志。使用该命令可以随时查看该环形缓冲区的内容,并且其内容也会在syslog 守护进程启动时dmesg
保存。/var/log/dmesg
所有非来自内核的日志在生成时都会发送到 syslog 守护程序,因此它们不会保存在任何缓冲区中。内核日志在生成时也会被 syslog 守护程序拾取,但它们也会继续保存(可以说是不必要的)到环形缓冲区。
日志级别可以查看记录在系统日志(3) 联机帮助页如下:
- LOG_EMERG: 系统无法使用
- 日志警报: 必须立即采取行动
- LOG_CRIT:临界条件
- 日志错误:错误条件
- LOG_警告:警告条件
- LOG_NOTICE:正常但重要的状况
- 日志信息: 信息性消息
- 日志调试:调试级消息
每个级别的设计都没有前一个级别“重要”。记录某一级别日志的日志文件也将记录所有更重要级别的日志。
/var/log/kern.log
和(例如)之间的区别/var/log/mail.log
与级别无关,而是与设施或类别有关。这些类别也记录在联机帮助页上。
答案2
至少回答您问题的第一部分dmesg
:
/var/log/dmesg
存储“内核环形缓冲区”的内容,这是内核在引导时创建的内存缓冲区,用于存储一旦通过引导加载程序阶段就会生成的日志数据。
环形缓冲区是一种特殊的缓冲区,它的大小始终恒定,当新消息进入时会删除最旧的消息。存储在内核环形缓冲区中的文本是您第一次启动 Unix 时在屏幕上看到的闪烁内容- 类似控制台模式的机器(无闪屏,普利茅斯)。内核日志存储在内存缓冲区中,以便引导日志有地方可存放,直到系统自行引导syslog
到守护程序可以接管的程度。
dmesg
util-linux
Linux下是kernel.org发布的系统维护工具必备包的一部分。根据dmesg(1)
手册页,
dmesg 用于检查或控制内核环形缓冲区。
看:http://www.computerhope.com/unix/dmesg.htm
在“systemd”初始化下,此命令可用于打印内核环形缓冲区:
# journalctl --dmesg or journalctl -k
,谢谢纠正@don_crissti
例如,发出该命令dmesg | grep -i ethernet
将解析内核环形缓冲区中的字符串“ethernet”。
我希望这至少对您询问的第一部分有所帮助。