当前位置:首页 > 系统教程 > 正文

Linux服务器如何查看设备重启记录和原因

服务器重启(无论是计划内还是意外)都可能影响业务稳定性。作为运维人员或开发者,掌握如何查看Linux重启记录查看重启原因是必备技能。本文将用最通俗的语言,带你一步步学会使用多种命令,快速定位重启根源。

Linux服务器如何查看设备重启记录和原因 Linux重启记录 查看重启原因 服务器重启日志 last reboot命令 第1张

方法一:使用 last 命令查看重启记录

last 命令会读取 /var/log/wtmp 文件,显示所有用户的登录和注销事件,也包括系统重启和关机。对于服务器重启日志,最常用的就是:

    last reboot  

输出示例:

    reboot   system boot  5.4.0-26-generic Wed Mar 11 10:22   still runningreboot   system boot  5.4.0-26-generic Tue Mar 10 22:15 - 23:58 (01:43)  

第一列是重启事件,第三列是内核版本,后面是重启时间。加上 -x 参数可以显示更详细的开机和关机记录:last -x | grep shutdown 查看关机记录。

方法二:使用 journalctl 查询系统日志

如果你的系统使用 systemd(大多数现代发行版),journalctl 是强大的日志工具。要筛选重启相关的服务器重启日志,可以:

    journalctl --list-boots  

这会列出每次启动的序号、ID和时间范围。然后查看某次启动的日志:

    journalctl -b -1   # 查看上一次启动的日志  

你也可以直接搜索内核 panic 或 oops 信息:

    journalctl -k -g "panic|oops"  

方法三:使用 dmesg 查看内核环缓冲区

dmesg 显示内核日志,通常包含硬件错误、驱动问题等可能导致重启的线索。直接运行:

    dmesg | tail -50  

结合 grep 过滤关键词,如 errorfailed 等。要查看上一次启动的 dmesg 日志,可以使用 dmesg -T 显示人类可读时间戳。

方法四:检查传统日志文件

许多系统仍保留 /var/log/messages/var/log/syslog,包含通用系统日志。用 grep 搜索重启前后的记录:

    grep -i "reboot" /var/log/sysloggrep -i "shutdown" /var/log/messages  

如何分析重启原因

找到重启时间点后,重点关注该时间附近的日志:

  • 硬件问题:dmesg 中的温度过高、电源故障、ECC 错误等。
  • 内核 panic:日志中出现 Kernel panic,通常伴随堆栈跟踪。
  • 服务或应用崩溃:某个关键服务退出导致系统重启(如 watchdog)。
  • 外部因素:如机房断电、人为重启(可通过 last 命令中是否有用户登录记录判断)。

结合 last rebootjournalctl 提供的时间,再去对应日志段查找异常信息,就能准确定位原因。例如:

    journalctl --since "2025-03-11 10:20" --until "2025-03-11 10:25"  

这样就能聚焦到重启前后几分钟的日志,快速找到线索。

总结

查看 Linux 重启记录和原因并不复杂,掌握 last rebootjournalctldmesg 这几个命令,你就能像老手一样快速排查。记住,查看重启原因的关键在于对比重启时间前后的系统状态。希望本文对你有所帮助!