Linux在哪里放置启动消息?


39

我想找到Linux将所有引导消息写入其中的地方。你懂:

facility one    [STARTED]
facility two    [STARTED]
facility three  [FAILED]

我搜寻了

find . -print0 | xargs -0 grep -i "words from boot messages"

在/ var / log /中,但什么也没找到。

我有CentOS 5.5。
例如,在启动时,我遇到了:“确定eth0的IP信息...失败;没有链接。检查电缆?”
我并不特别在乎错误,但是找不到任何包含此错误的日志。

dmesg | grep "no link present" 也不会返回任何内容。


1
您是否find以root权限运行命令?find将打印您可以列出的所有文件,但grep只能检查您可以读取的文件,某些日志文件可能归root用户所有,并具有其他用户的读取权限。另外,至少GNU grep支持th -l选项来打印具有匹配项而不是匹配行的文件名。这对于查找包含某些文本的文件非常有用。因此,请尝试su -c 'find /var/log -print0 | xargs -0 grep -l -i "words from boot messages"'sudo find /varlog -print0 | xargs -0 sudo grep -l -i "words from boot messages"
mschilli 2015年

时下systemd 这里就是答案。
巴勃罗

Answers:


24

大多数引导消息都放在一个缓冲区中,您可以使用命令访问该缓冲区dmesg。在大多数Linux发行版中,该输出也存储在

/var/log/dmesg.log

可以查看的

tail -n 100 /var/log/dmesg.log

1
例如,我在启动时遇到:“确定eth0的IP信息...失败;不存在链接,检查电缆?” 我并不特别在乎这个错误,但是当我这样做时:dmesg | grep“没有链接存在”我什么也没得到...实际上,我用grep“ eth0”得到了很多行,但是没有具体错误。那么有没有办法找到具体的启动错误描述或否?(谢谢您的答复)
Rodnower 2010年

尝试使用Nano的^ w(whereis)命令,本质上是Find命令。或grep使用轻松的正则表达式。如果您真的担心特定命令的输出,则可以进入该init.d文件并更改有问题的命令的STDOUT或STDERR日志记录。
Mat Carlson 2014年

/var/log/dmesg.logLubuntu 18.04上的否定
Marco Sulla

17

引导过程中的每个例外条目都/var/log/syslog可以放入/var/log/boot.msg


我有CentOS 5.5,但在/ var / log /中没有系统日志
Rodnower 2010年

boot.log(通常为boot.log(x),其中x是正整数或什么都不是)为空。
Rodnower 2010年

1
试试/ var / log / messages
pjc50

1
/var/log/boot.msg是Linux
Mint

可能还包含非异常条目。
阿卜杜勒

8

该解决方案肯定可以在Debian系统上运行,但也许仍然有用。

为了存储引导期间显示的所有消息,您必须启动名为的服务bootlogd,下次重启后您可以阅读消息/var/log/boot


在Debian喘息,我得到root@wheezy:/home/jrx# service bootlogd start bootlogd: unrecognized service
杰罗姆板蓝根

4
@JérômeRadix也许您应该先安装它?
behrooz

3

键入dmesg>〜/ dmesg.log,将所有引导消息复制到您自己的副本中。如果要保留多个副本,则可以添加日期和时间,甚至可以在登录脚本中自动将其设置为日期和时间。

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.