Linux查看系统启动时间,uptime命令详解
时间:2026-10-22 07:35 作者:emer 分类: 无
前言
排查服务器"为什么重启了"、评估系统稳定性时,需要知道系统上次启动时间和连续运行时长。uptime 是最直接的命令,一行同时给出当前时间、运行时长、在线用户数和平均负载。本篇拆解它的输出含义,并补充查看精确开机时间的其他方法。
一、uptime 基本用法
uptime
# 输出示例:
# 07:35:12 up 18:22, 2 users, load average: 0.12, 0.08, 0.05
二、输出字段逐项解读
07:35:12:系统当前时间;up 18:22:系统已连续运行 18 小时 22 分钟;如果跨天较长会显示days,例如up 3 days, 04:10;2 users:当前登录的会话数(包含 ssh、终端、图形会话,重复登录会重复计数,不等于在线人数);load average: 0.12, 0.08, 0.05:系统平均负载,分别对应最近 1 分钟、5 分钟、15 分钟 的平均活跃进程数(含运行、等待 CPU、等待 IO 的进程)。
三、平均负载怎么判断是否偏高
平均负载要看 CPU 核心数才有意义:
# 查看 CPU 核心数
nproc
# 或
cat /proc/cpuinfo | grep "processor" | wc -l
经验判断:
- 负载值 < CPU 核数:CPU 处理得过来;
- 负载 ≈ 核数:接近饱和;
- 负载 > 核数持续几分钟:进程在排队,需要结合
top、vmstat排查是 CPU 密集还是 IO 密集; - 1 分钟高、5/15 分钟低:短时高峰;三分钟趋势接近且都偏高:持续压力。
四、uptime 常用参数
# 简洁模式,只显示运行时长
uptime -s
# 显示上次开机时间(精确到时分秒)
# 输出示例:2026-10-21 13:12:49
uptime -p
# 漂亮格式:up 18 hours, 22 minutes
五、其他查看开机时间的方法
# 1. who -b 查看上次启动时间
who -b
# 2. last reboot 列出历次重启记录(查谁重启、何时重启)
last reboot | head
# 3. 读取 /proc/uptime(第一个值为秒数,第二个为空闲秒数)
cat /proc/uptime
# 4. systemd 系统用 systemd-analyze 看启动耗时
systemd-analyze
六、常见坑
up后面格式看错:18:22是小时:分钟,不是当天时间;跨天会出现days;- users 当成真实人数:它统计会话数,一条 ssh 断线未退出也会占一个会话;用
w或who看具体登录人; - 负载和 CPU 占用混淆:高负载可能是磁盘 IO 等待导致,CPU 使用率反而不高,要结合
top中%wa判断; - 不结合核数看负载:4 核机器负载 2.0 很轻松,1 核机器负载 2.0 已经排队;
uptime -s拿到的是开机时间,不是进程启动时间:查某个服务何时启动用ps -o lstart -p PID。
七、排查组合命令
# 一次看:运行时长、负载、CPU 核数、当前登录人
uptime
nproc
w
服务异常时先看 uptime:若运行时长很短,说明机器刚重启,先确认是计划重启、断电还是崩溃重启,再结合 last reboot 和 /var/log/messages 定位原因。
总结
uptime 一行给出当前时间、已运行时长、登录会话数和 1/5/15 分钟负载;判断负载要除以 CPU 核数;精确开机时间用 uptime -s、who -b、last reboot;重启类故障先确认运行时长和重启记录,再往下查系统日志。
遇到问题加QQ23979811 协助处理