在 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 是最快定位问题的入口。