uptime -s 最适合查绝对启动时间,因其直接读取内核启动时钟原始时间戳,格式为 yyyy-mm-dd hh:mm:ss,精确到秒,不依赖日志或用户态服务,不受 ntp 校正影响,轻量且无权限要求。

直接执行 uptime -s 就能拿到服务器自上次重启后的绝对启动时间点,格式为 YYYY-MM-DD HH:MM:SS,精确到秒,无需换算。
为什么 uptime -s 最适合查绝对启动时间
它从内核启动时钟直接读取原始时间戳,不依赖日志文件、服务状态或用户空间进程。只要系统没崩溃重置过内核时钟,这个时间就是最接近真实开机时刻的记录。
- 输出示例:2026-04-29 15:22:18(结合当前时间 2026-04-30 08:40,可确认已运行约 17 小时)
- 不受 NTP 时间校正影响——它记录的是“当时系统认为的开机那一刻”,不是回溯修正后的 UTC 时间
- 命令轻量,无权限要求,适合嵌入监控脚本或巡检清单
和其他方法的区别要点
who -b 输出只有分钟精度(如 system boot 2026-04-29 15:22),且依赖 /var/run/utmp 文件;该文件可能在容器环境或异常关机后丢失,导致无输出。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
last reboot 查的是历史记录,末尾若显示 still running 才代表当前会话,否则可能是旧的一次启动;wtmp 日志还可能被轮转清理,不一定保留最早记录。
/proc/uptime 虽底层稳定,但只给秒数,必须配合 date 反算,多一步易出错,且休眠时间不计入,对有 suspend/resume 行为的设备不完全等价于“开机时间”。
实用小技巧
- 快速验证是否刚重启过:运行
uptime -s,再对比date,差值就是实际运行时长 - 在脚本中提取日期用于日志标记:
START_TIME=$(uptime -s) - 想确认是否跨天启动:用
uptime -s | cut -d' ' -f1只取日期部分










