uptime -s 命令可直接获取系统精确启动时间戳,格式为 YYYY-MM-DD HH:MM:SS,精度达秒级,不依赖外部日志,适合脚本调用与监控场景。

如果您需要确认 Linux 系统确切的开机时刻,而非仅知运行时长,则需调用内核或日志系统中记录的时间戳。以下是多种可直接获取系统启动时间的方法:
一、使用 uptime -s 查看精确启动时间戳
uptime -s 命令直接读取内核维护的启动时间戳,输出格式为 YYYY-MM-DD HH:MM:SS,精度达秒级,不依赖外部日志,适合脚本调用与监控场景。
1、打开终端窗口。
2、输入命令:uptime -s 并回车执行。
3、终端将直接显示类似 2026-03-28 08:47:12 的完整启动时间。
二、使用 who -b 查看 utmp 记录的启动时间
who 命令配合 -b 参数从 /var/run/utmp 文件中提取系统初始化时写入的启动记录,该文件由 init 进程在启动阶段写入,精度到分钟,审计可信度高。
1、在终端中执行:who -b。
2、输出格式为 system boot YYYY-MM-DD HH:MM,例如 system boot 2026-03-28 08:47。
3、注意该时间不含秒字段,且若系统未正常关机重启,utmp 可能未及时更新。
三、使用 last reboot 查阅 wtmp 中的重启历史
last 命令读取 /var/log/wtmp 二进制日志,可追溯多次 reboot 事件,适用于排查异常重启或验证最近一次开机是否为预期操作。
1、执行:last reboot | head -n 1 获取最近一次重启记录。
2、若输出含 still running,表示该次启动持续至今,时间即为当前有效开机时间。
3、完整记录可通过 last reboot 查看,每行首列为 reboot,其后时间为该次启动发生时刻(格式为月 日 HH:MM)。
四、解析 /proc/uptime 反推启动时间
/proc/uptime 第一列数值为系统自启动以来的总秒数(浮点型),是内核直接维护的底层计时源;结合当前系统时间,可反向计算出精确到秒的开机时刻,适合自动化脚本处理。
1、执行:cat /proc/uptime | awk '{print int($1)}' 提取整数秒数。
2、执行:date -d "@$(($(date +%s) - $(awk '{print int($1)}' /proc/uptime)))" "+%Y-%m-%d %H:%M:%S" 完成时间换算。
3、输出结果形如 2026-03-28 08:47:12,与 uptime -s 结果一致,但依赖当前系统时间准确同步。
五、使用 systemd-analyze time(仅限 systemd 系统)
对于使用 systemd 作为 init 系统的发行版(如 Ubuntu 16.04+、CentOS 7+、Debian 9+),systemd-analyze time 可基于启动各阶段耗时反推内核启动完成时刻,该时间点接近物理开机瞬间。
1、在终端中运行:systemd-analyze time。
2、查找输出中 Kernel start: 行,其后时间即为内核加载完成时刻,格式为本地时间戳。
3、若需进一步确认,可执行:systemd-analyze log-level=debug time 2>/dev/null | grep "Kernel start" 提取原始时间字段。

















