Linux系统关机/重启后last命令显示的停机时长异常问题咨询
我来帮你理清这个疑惑!首先你误解了last命令里那个时长的含义啦——它显示的不是系统停机的时长,而是那次系统启动后持续运行的时长!
先看你给出的last -x输出:
reboot system boot 5.14.0-325.el9.x Tue Mar 5 08:16 still running
reboot system boot 5.14.0-325.el9.x Mon Mar 4 01:47 - 08:16 (1+06:28)
shutdown system down 5.14.0-325.el9.x Tue Mar 5 08:16 - 08:16 (00:00)
第二条reboot记录里的(1+06:28),意思是系统在3月4日凌晨1:47启动后,一直运行到3月5日早上8:16才重启,这段运行时间刚好是1天6小时28分钟,所以才会显示这个格式。而你以为的“停机时长”其实是上一次关机到下一次启动的间隔,这个last命令默认不会直接给你算出来,得自己对比时间。
再看你的shutdown记录:Tue Mar 5 08:16 - 08:16 (00:00),这就很准确——系统在8:16关机,紧接着就重启了,所以停机时长确实是0分钟。
那如果想获取真正的停机时长,你可以这么做:
- 找到上一条
shutdown的结束时间(也就是系统关机的时间) - 找到下一条
reboot的开始时间(也就是系统再次启动的时间) - 计算这两个时间的差值,就是真正的停机时长
比如看你last reboot的另一段输出:
[root@ansible ~]# last reboot
reboot system boot 5.14.0-419.el9.x Tue Mar 5 18:44 still running
reboot system boot 5.14.0-391.el9.x Thu Feb 22 20:21 - 18:44 (11+22:23)
第二条reboot的(11+22:23)是说2月22日20:21启动的系统,一直运行到3月5日18:44才重启,运行了11天22小时23分钟——这段时间系统是正常运行的,不是停机哦!
备注:内容来源于stack exchange,提问作者AshKash

