如何查看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 panic或Oops,则可能是内核错误导致重启;若显示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")。
  • journalctl:journalctl --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系统下如何进行汇编编程?

    在Linux系统中编写汇编程序通常需要借助汇编器(如NASM或GAS)、链接器(ld)以及调试工具(gdb),不同汇编语法(如Intel语法和AT&T语法)略有差异,本文以常用的NASM(支持Intel语法)为例,介绍完整的开发流程,基础工具与环境准备Linux下编写汇编程序的核心工具包括:汇编器:将汇……

    2025年10月7日
    25800
  • 如何30秒搞定parted分区?免root权限!

    在Linux系统中合并分区是一项常见的磁盘管理任务,通常用于整合相邻的未分配空间或合并两个相邻分区以扩展存储容量,操作前务必备份所有重要数据,误操作可能导致数据丢失, 以下是详细的操作方法和工具指南:合并分区的核心条件分区必须相邻:只能合并物理位置连续的分区(如sda1和sda2相邻),文件系统支持:需确保文件……

    2025年7月31日
    32600
  • 如何搭建RAID 1保障数据安全?

    存储设备识别与检测设备文件机制Linux将所有硬件视为文件,存储设备映射到/dev/目录:硬盘:/dev/sdX(如sda、sdb,SATA/USB设备)或/dev/nvme0n1(NVMe SSD)分区:/dev/sda1、/dev/sda2(数字表示分区序号)使用lsblk或fdisk -l查看所有设备,自……

    2025年7月25日
    23800
  • Linux软件如何更新?有哪些常用操作方法?

    Linux软件更新是系统维护的核心环节,不仅能修复安全漏洞、优化性能,还能引入新功能,确保系统稳定运行,由于Linux发行版众多,包管理工具各不相同,更新方法也存在差异,本文将详细介绍主流Linux发行版的软件更新方式,涵盖命令行、图形化工具及源码编译等多种场景,并附上实用注意事项和常见问题解答,基于包管理器的……

    2025年9月29日
    23100
  • Linux系统升级PHP7.0版本的具体操作步骤是怎样的?

    在Linux系统中升级或安装PHP 7.0需要根据不同的发行版选择合适的方法,以下是详细步骤,涵盖备份、源配置、安装及测试全流程,确保操作安全可靠,升级前的准备工作在开始操作前,务必备份现有PHP配置、扩展及网站数据,避免升级过程中出现数据丢失或服务中断,需备份的关键文件包括:PHP配置文件:通常位于/etc……

    2025年8月25日
    23000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信