如何查看Linux系统的重启记录?

在Linux系统中,查看重启记录是系统运维和故障排查中的常见需求,通过记录可以快速定位系统异常、服务中断等问题,Linux系统重启时会将相关信息记录到日志文件或系统命令输出中,本文将详细介绍多种查看方法,包括常用命令、日志文件解析及不同场景下的适用技巧。

如何查看linux重启记录

通过last命令查看重启记录

last命令是Linux系统中查看用户登录、关机、重启等信息的基础工具,其数据来源为/var/log/wtmp文件(二进制格式,记录所有登录、关机、重启事件)。

基本用法

直接执行last命令会显示所有登录、重启、关机记录,其中包含重启信息的行通常以reboot关键字开头:

last reboot

输出示例:

reboot   system boot  5.15.0-88-generic Tue Dec 5 10:30 still running  
reboot   system boot  5.15.0-88-generic Mon Dec 4 18:45 - 10:30 (15:45)  
reboot   system boot  5.15.0-88-generic Sun Dec 3 09:20 - 18:45 (9:25)  

各列含义说明:

  • 第一列:reboot(标识重启事件)
  • 第二列:system boot(系统启动方式,与内核启动相关)
  • 第三列:内核版本(如15.0-88-generic
  • 第四、五列:重启时间(如Tue Dec 5 10:30
  • 第六列:持续时间(如still running表示系统仍在运行,或15:45表示上次运行时长)

高级参数

  • -n:限制显示行数,如last reboot -n 10显示最近10次重启记录。
  • -t:按时间范围筛选,如last reboot -t "2023-12-01 00:00:2023-12-05 23:59"
  • -i:显示IP地址(若通过远程重启,可查看客户端IP)。

注意事项

/var/log/wtmp文件大小有限,默认保留最近的事件记录,若系统长期未重启或文件被清理,可能无法查到早期记录。

通过journalctl查看系统重启日志(systemd系统)

现代Linux发行版(如Ubuntu 16.04+、CentOS 7+)多采用systemd作为初始化系统,journalctl是systemd的日志管理工具,可查看内核、服务及系统事件的详细日志,包括重启过程中的关键信息。

如何查看linux重启记录

基本用法

查看所有与重启相关的系统日志:

journalctl -u systemd-reboot.service -b
  • -u systemd-reboot.service:指定查看重启服务日志。
  • -b:显示当前启动周期的日志(-b -1显示上次启动周期)。

常用过滤条件

  • 按时间范围:journalctl --since "2023-12-01" --until "2023-12-05" -p err | grep reboot
  • 查看内核重启原因:journalctl -k | grep -i "reboot|restart"
  • 显示详细日志时间戳:journalctl -u systemd-reboot.service -b -b --no-pager

示例输出

Dec 05 10:30:01 localhost systemd[1]: Stopped target System Reboot.  
Dec 05 10:30:01 localhost systemd[1]: Reached target System Reboot.  
Dec 05 10:30:01 localhost systemd[1]: Starting System Reboot...  
Dec 05 10:30:05 localhost kernel: Rebooting from kernel  

通过日志可定位重启触发者(如用户手动执行reboot、内核panic、服务崩溃等)。

解析/var/log/messages/var/log/syslog文件

传统Linux系统(或未使用systemd的系统)会将系统运行日志记录到/var/log/messages(CentOS/RHEL)或/var/log/syslog(Ubuntu/Debian)中,重启事件通常包含在这些文件中。

查看方法

使用grep命令过滤重启关键字:

# CentOS/RHEL
grep -i "reboot|restart|going down" /var/log/messages
# Ubuntu/Debian
grep -i "reboot|restart|going down" /var/log/syslog

关键字说明

  • reboot:手动重启命令触发。
  • Restarting system:系统服务重启导致的系统重启。
  • Going down for reboot:关机/重启前的系统提示。

处理日志轮转

日志文件会定期轮转(如/var/log/messages.1/var/log/messages.2.gz),需结合zcat查看压缩的历史日志:

zcat /var/log/messages.1.gz | grep -i reboot

通过dmesg查看内核重启信息

dmesg命令用于显示内核环缓冲区(kernel ring buffer)的信息,重启时内核的启动参数、硬件检测、错误信息等会被记录,适合排查内核层面的重启原因。

如何查看linux重启记录

基本用法

dmesg | grep -i "reboot|restart|panic"

示例输出

[    0.000000] Linux version 5.15.0-88-generic (buildd@lcy01-amd64-015) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #98-Ubuntu SMP Mon Oct 9 15:08:34 UTC 2023  
[    5.123456] systemd[1]: Reached target System Reboot.  
[    5.234567] systemd[1]: Starting System Reboot...  
[   10.987654] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000200  

若输出包含Kernel panicOops,则可能是内核错误导致重启;若显示systemd相关日志,则与系统服务相关。

常用命令对比及适用场景

为方便选择工具,以下通过表格对比不同方法的优缺点及适用场景:

命令/文件 作用 优点 缺点 适用场景
last reboot 查看重启时间及用户记录 简单直观,无需额外参数 依赖wtmp文件,信息有限 快速查看最近重启时间及次数
journalctl 查看系统重启详细日志 信息全面,支持过滤,适合systemd 仅限systemd系统,命令参数较多 定位重启原因(服务/内核错误)
/var/log/messages 查看系统日志中的重启事件 可追溯历史日志(结合轮转文件) 需手动过滤关键字,日志量大时效率低 传统系统或需长期分析重启记录
dmesg 查看内核重启信息 直观显示内核错误及硬件信息 仅限内核层面,无用户操作记录 排查内核panic或驱动问题导致的重启

注意事项

  1. 权限问题:查看/var/log/下的系统日志通常需要root权限,普通用户需通过sudo执行命令。
  2. 日志清理:系统会定期清理旧日志(如logrotate工具),若需长期保存,需配置日志轮转策略。
  3. 发行版差异:不同Linux发行版的日志路径和默认日志服务可能不同(如RHEL用syslog,Ubuntu用rsyslog),需根据实际情况调整命令。

相关问答FAQs

Q1:为什么last reboot命令看不到重启记录?
A:可能原因包括:

  • /var/log/wtmp文件被清空或损坏(可通过file /var/log/wtmp检查文件格式是否正常)。
  • 系统未正常重启(如断电导致未记录到wtmp)。
  • 使用了非last兼容的日志系统(如systemd的journalctl未同步到wtmp)。
    可尝试通过journalctl -u systemd-reboot.service或检查/var/log/syslog替代。

Q2:如何查看特定时间范围内的重启记录?
A:根据使用的工具选择不同方法:

  • last命令:last reboot -t "YYYY-MM-DD HH:MM:YYYY-MM-DD HH:MM"(如last reboot -t "2023-12-01 10:00:2023-12-05 18:00")。
  • journalctljournalctl --since "YYYY-MM-DD HH:MM" --until "YYYY-MM-DD HH:MM" -u systemd-reboot.service
  • 日志文件:grep "reboot" /var/log/messages | grep "2023-12-01"(需结合时间关键字手动筛选)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/24187.html

(0)
酷番叔酷番叔
上一篇 2025年9月16日 19:11
下一篇 2025年9月16日 19:24

相关推荐

  • Linux系统如何安装Qt开发环境?

    在Linux系统中安装Qt开发环境是进行跨平台C++应用开发的重要步骤,Qt框架提供了丰富的库和工具,支持GUI、非GUI及移动应用开发,本文将详细介绍在Linux中安装Qt的多种方法,包括包管理器安装、官方在线安装器安装及源码编译安装,并涵盖环境配置、验证步骤及常见问题解决,帮助开发者根据需求选择合适的安装方……

    2025年9月29日
    2600
  • 如何安全重启Linux系统?

    重启前的关键准备保存所有工作关闭所有应用程序(如文档、代码编辑器),避免数据丢失,通知在线用户(针对服务器)通过 wall 命令广播通知: echo "系统将在5分钟后重启,请保存工作!" | wall检查关键服务确认无关键任务运行(如数据库写入、备份):systemctl list-uni……

    2025年7月13日
    5400
  • linux 如何选择内核

    Linux 中选择内核可考虑硬件兼容性、功能需求、稳定性及社区支持等因素,综合

    2025年8月18日
    4100
  • Linux终端翻页技巧你会几种?

    分页查看工具中的向上翻页less 命令(最推荐)进入分页模式:执行 less 文件名(如 less /var/log/syslog),向上翻页快捷键:Page Up 或 b:向上翻一页, 或 k:向上滚动一行,u:向上翻半页,g:跳转到文件开头,退出:按 q,more 命令(基础工具)进入分页模式:执行 mor……

    2025年7月18日
    5700
  • 挂载前必须做哪些准备?

    在Linux系统中挂载硬盘分区是管理存储空间的基础操作,无论您是添加新硬盘还是访问现有分区,以下步骤将确保安全高效地完成,本文遵循专业、准确、可信的原则(符合E-A-T标准),所有命令均经过主流Linux发行版(Ubuntu/CentOS等)实测验证,识别硬盘分区使用 lsblk 或 fdisk 查看磁盘信息……

    2025年7月21日
    4500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信