注: 文章中的示例代码都在 Ubuntu 系统中执行,其他 Linux 发行版操作类似。
场景描述
在日常的运维工作中,不可避免的会遇到服务器故障的问题。虽然在应用运维或SRE岗,不必亲自去维修服务器,但是有必要去排查导致问题的原因,以便后续提交报修工单。
在各种类型的服务器故障中,有一种是这样的:
某一天,服务器突然无法登录,服务器重启后又恢复正常。
服务器重启恢复正常后,我们登录到服务器上,需要去判断这次故障是否是由于硬件问题导致的,如果是硬件有问题的话,通常会在 dmesg 日志中有所体现。
问题是,每次服务器重启之后,登录到机器上执行 dmesg 命令,都只能展示本次重启后的日志,重启之前的日志就看不到了。而我们为了排查服务器故障的原因,就必须要看到重启之前的 dmesg 日志。
Ubuntu < 15.04
现在使用小于 Ubuntu 15.04 版本的人应该很少了,不过如果你在使用这些旧的 Ubuntu 系统的话,在你的 /var/log/ 目录下,会有如下名称的日志文件:
dmesg
dmesg.0
dmesg.1.gz
...
dmesg 日志文件中保存的是本次重启后的日志,而 dmesg.0 是这次重启前的 dmesg 日志,dmesg.1.gz 是上次重启前的 dmesg 日志,依次类推。
通过查看 dmesg.0 日志文件中的内容&#x