在Linux系统中,查看服务器或系统的重启记录是日常运维的重要工作,通过分析重启时间、原因等信息,可以帮助定位系统故障、优化稳定性或排查异常行为,本文将详细介绍Linux系统中查看重启记录的多种方法,涵盖不同场景下的实用命令和技巧。

使用last命令查看重启历史
last命令是Linux系统中查看用户登录和系统重启信息的常用工具,它读取/var/log/wtmp文件并显示最近的登录及重启记录,要专门查看重启信息,可以结合grep命令过滤关键词:
last reboot
执行后会显示重启时间、持续时间、重启原因(如”system boot”)以及系统运行级别等信息,若需查看更详细的历史记录,可添加-x参数,该参数会同时显示关机、重启等系统事件:
last -x | grep reboot
需要注意的是,/var/log/wtmp文件是二进制格式,会随着系统运行持续增长,管理员可通过logrotate工具配置日志轮转,避免文件过大。
检查/var/log目录下的日志文件
Linux系统的关键日志通常存储在/var/log目录中,多个日志文件可能包含重启相关的信息:
/var/log/syslog(Debian/Ubuntu系统)或/var/log/messages(CentOS/RHEL系统):记录系统启动过程中的内核消息和服务日志,使用grep命令可筛选重启相关条目:grep "reboot\|boot\|shutdown" /var/log/syslog
/var/log/kern.log:记录内核级别的日志,包括硬件初始化和驱动加载信息,可通过以下命令查看启动时的内核消息:grep -i "kernel\|boot" /var/log/kern.log
/var/log/dmesg:内核环形缓冲区日志,记录系统启动时的硬件检测和驱动加载过程,直接使用dmesg命令或查看文件内容:dmesg | grep -i "reboot\|boot"
利用uptime命令查看系统运行时间
若只需了解系统的当前运行时间和重启次数,可使用uptime命令:

uptime
命令输出中的”up”后跟的时间表示系统自上次重启以来的运行时长。”up 10 days, 3:15″表示系统已连续运行10天3小时15分钟,对于需要监控系统稳定性的场景,可结合watch命令定时查看运行时间变化:
watch -n 60 uptime
分析journalctl日志(Systemd系统)
对于采用Systemd作为初始化系统的Linux发行版(如CentOS 7+、Ubuntu 16.04+),journalctl是查看系统日志的强大工具,通过以下命令可筛选重启相关的日志条目:
journalctl -b -p err -k | grep -i "reboot\|boot"
参数说明:
-b:显示当前启动周期的日志;-p err:仅显示错误级别及以上优先级的日志;-k:显示内核日志。
若需查看所有历史重启记录,可添加-u systemd-reboot.service参数:journalctl -u systemd-reboot.service -b
查看/proc/uptime文件
/proc/uptime是一个虚拟文件,记录了系统自启动以来的总运行时间(秒)和空闲时间(秒),通过以下命令可提取运行时间:
cat /proc/uptime | awk '{print $1}'
该结果可直接转换为天、小时、分钟,便于直观了解系统运行时长。

自动化监控与日志轮转
对于需要长期监控重启记录的场景,建议结合日志轮转工具(如logrotate)和自动化脚本,配置/etc/logrotate.d/rebootlogs定期压缩和清理旧日志,并使用cron任务定期分析重启记录并报警:
0 2 * * * /usr/bin/journalctl -u systemd-reboot.service --since yesterday > /var/log/reboot_$(date +\%Y\%m\%d).log
Linux系统提供了多种查看重启记录的方法,从简单的last命令到详细的journalctl日志分析,管理员可根据实际需求选择合适的工具,在日常运维中,建议结合日志轮转和自动化监控,确保重启信息的完整性和可追溯性,从而快速响应系统异常并保障服务稳定性。















