在 Linux 系统中,宕机(系统崩溃)相关的日志通常可以通过以下几个关键位置和工具查看:
dmesg
命令:直接查看内核环形缓冲区的日志(包含硬件、驱动和内核错误)。
dmesg -T | grep -i "panic\|oops\|error\|segfault"
-T
选项显示人类可读的时间戳。journalctl
命令(Systemd 系统):
journalctl -k --since "1 hour ago" | grep -i "crash\|panic\|oops"
-k
仅显示内核日志。/var/log/kern.log
(Debian/Ubuntu)或 /var/log/messages
(RHEL/CentOS):
grep -i "panic\|oops\|kernel" /var/log/kern.log
/var/log/syslog
(通用):
grep -i "error\|crash" /var/log/syslog
如果内核崩溃触发了转储,日志可能在:
/var/crash/
(Ubuntu/Debian 默认位置)/var/log/coredump/
(部分发行版)kdump
生成的转储文件(需预先配置)。检查是否生成转储文件:
ls -l /var/crash/ /var/log/coredump/
分析转储文件(需安装 crash
工具):
crash /path/to/vmcore /usr/lib/debug/boot/vmlinux-$(uname -r)
/var/log/mcelog
(内存错误,需安装 mcelog
工具)。/var/log/bioslog
(部分服务器主板 BIOS 日志)。bash
journalctl -u service_name --no-pager
在日志中搜索以下关键词快速定位问题:
- Kernel panic
(内核崩溃)
- Oops
(内核异常)
- segfault
(段错误)
- hardware error
(硬件错误)
- NULL pointer dereference
(空指针引用)
root
权限(如 sudo dmesg
)。.gz
后缀),需用 zcat
或 zgrep
查看。Magic SysRq
键(如 Alt+SysRq+c
)手动触发崩溃诊断。根据具体场景选择合适的方法,通常 dmesg
和 /var/log/kern.log
是最快定位问题的入口。