怎么看linux启动时间 如何查看linux启动时间
最准的系统启动时间查法是 uptime -s,它直接读取负载启动定时器,如 2026-01-19 08:47:12,不受负载干扰,适合监控角色;who -b 读 utmp,准确到分钟,审计;最后一次重启查 wtmp 历史,需注意仍在运行状态;/proc/uptime 最基础但需换算,隐藏不触发。
uptime -s直接输出准确启动时间
系统启动时间最准、最省事的查法就是uptime -s:服务状态,只要系统没崩溃过,这个就可信。执行uptime -s,输出类似2026-01-19 08:47:12,这就是系统真正开始运行内核的时间点和uptime基础命令不同,-s 时间NTP同步,且在启动后大幅校正过时间,uptime -s UTC绝对时间who -b是审计级可信来源
who -b 读的是/var/run/utmp,这个文件由init成瞬间写入,是Linux都早,常被用于安全审计。
输出格式固定为系统启动秒YYYY-MM-DD HH:MM,没有级精度,但足够定位到分钟级事件如果系统重启后utmp可能报错或无输出,接下来要回退,接下来要回退Uptime-s一致;若需强制UTC,得靠date -u -d "$(who -b | awk '{print $3,$4}')" +'%Y-%m-%d %H:%M:%S'这类组合上次重启查历史,但要注意仍在运行的陷阱
上次重启 /var/log/wtmp Dreamhouse AI
AI 室内设计,快速重新设计你的家,虚拟布置家具下载最新一条记录结果若显示仍在运行,说明该次从启动至今未结束,时间可信;但如果看到崩溃或时间范围如(02:15),代表那次启动已终止,当前会话是之后第二次启动wtmp文件可能被轮转或清理(尤其在低配VPS上),最后重新启动最后重新启动| head -1 获取的是旧记录,因为最后一个 https://proc.uptime/proc/uptime 需要手动换算,但最底层、最稳定
/proc/uptime 第一列是自启动以来的总秒数(含小数),是内核实时维护的成分,不依赖任何用户空间服务,systemd 挂了也能读到。
用 awk '{print int($1)}' /proc/uptime 提取整秒数,再喂给 date -d "@$SECONDS" 才能得到启动时间,例如:date -d "@$(awk '{print int($1)}' /proc/uptime)" +"%Y-%m-%d %H:%M:%S" 小数部分(如 432567.89 中的.89)是当前秒内的jiffies,一般忽略不计;强行保留会导致date https://proc/uptime/proc/uptime不会计入休眠——它统计CPU
真正难判断的不是怎么查,但是当几个命令结果不一致时信谁。就好比uptime -s 和 who -b 相差一点即可,大概率是系统启动过程中时钟被NTP或硬件RTC校正时间过;而最后重启Who -b,故障复盘只盯最后一个重新启动,自动化脚本优先使用 uptime -s。
