uptime、who -b、systemctl status、/proc/uptime和last命令均可获取Linux系统启动时间;uptime -s显示精确启动时间戳,who -b读取utmp中init写入的启动记录,systemctl status的Since字段标识systemd初始化完成时刻,/proc/uptime结合date可反推启动时间,last reboot追溯wtmp中的重启历史。

如果您需要确认Linux系统自上次启动以来已运行多久,或精确获知系统开机的具体时间点,则需调用内核或系统服务记录的原始启动信息。以下是多种可靠方法:
一、使用uptime命令查看运行时长及启动时间
uptime命令直接读取内核维护的运行计时器,输出中包含系统当前时间、运行时长(up字段)以及平均负载。配合-p和-s选项可分别提取简洁运行时长和精确启动时间戳。
1、执行基础uptime命令查看概览:
uptime
2、仅显示系统运行时间(格式化为“X days, Y hours, Z minutes”):
uptime -p
3、显示系统启动的完整日期与时间:
uptime -s
二、使用who -b命令获取精确开机时间
who -b从/var/run/utmp文件中读取最近一次系统引导记录,该时间由init进程在启动时写入,具有高可信度,适用于审计与故障复盘。
1、运行命令查询启动时间:
who -b
2、输出中“system boot”后的内容即为确切开机时间,例如:system boot 2026-01-05 09:23:17
三、通过systemctl status提取Since字段
在基于systemd的系统中,systemctl status会显示系统服务管理器的启动上下文,其开头的Since字段明确标注了systemd初始化完成的时间,等同于用户空间服务就绪时刻。
1、执行状态查询:
systemctl status
2、在输出首段查找类似以下行:Since: Mon 2026-01-05 09:23:18 CST; 3 days ago
四、解析/proc/uptime并转换为可读时间
/proc/uptime第一列数值表示系统自启动以来的总秒数(含小数),结合date命令可反推启动时间点,该方法不依赖外部服务,直接源于内核实时统计。
1、读取运行秒数:
cat /proc/uptime | awk '{print $1}'
2、将秒数转换为人类可读的启动时间:
date -d "@$(awk '{print int($1)}' /proc/uptime)" +"%Y-%m-%d %H:%M:%S"
3、结果示例:2026-01-05 09:23:17
五、使用last命令追溯重启历史
last命令从/var/log/wtmp中读取登录与系统事件日志,其中reboot条目记录每次系统重启动作,可用于交叉验证最近一次启动时间,并识别非计划性重启。
1、列出所有重启事件:
last reboot
2、若输出包含多条记录,最新一条即为当前会话的启动时间:reboot system boot 2026-01-05 09:23
3、限制只显示最近一次重启:
last reboot -n 1










