我使用以下三个命令来检查计算机重新启动时的最新时间点:
last reboot
who -b
uptime
最后一次重新启动的结果是:
wtmp begins Sat Oct 9 04:49:27 2021
-b的结果是:
system boot 2018-01-11 20:52
正常运行时间的结果是:
22:49:01 up 1372 days, ...
看来,正常运行时间和谁-b的结果是一致的,但与上次重新启动的结果不一致。
我发现这个帖子在Linux上最后一次引导系统时,系统的正常运行时间和-b显示的时间不同.,但它说他的正常运行时间和谁的-b是不一致的,与我的情况不同。
发布于 2021-10-15 07:11:57
在Linux上,这三个命令默认使用不同的信息源。
uptime
使用内核在/proc/uptime
中提供的信息。后一种包含两条信息:系统的正常运行时间,包括挂起的时间和空闲进程中的时间。这些数值是准确的。
who -b
使用存储在/var/run/utmp
中的信息。在当前系统上,这实际上是/run/utmp
,只有当前引导的信息(/run
是在系统重新启动时丢失其内容的tmpfs
);但是对于当前的引导,它也是准确的。
last reboot
使用存储在/var/log/wtmp
中的信息。在那里存储的信息通常也是准确的,但是您需要的信息可能不再存储在那里:wtmp
在许多设置中旋转,通常是每月一次。这意味着,如果系统当前的启动时间比wtmp
的S上次旋转时间长,则所提供的信息将是部分的。特别是,last reboot
最后显示的是最后的旋转时间,而不是系统的实际启动时间。这就是为什么last
显示wtmp
开始的时间:这是last
显示信息的时间范围。
当wtmp
包含上一次引导时,last reboot
确实显示了它:
$ last reboot | head -n 1
reboot system boot 5.10.0-8-amd64 Mon Sep 13 15:56 still running
$ who -b
system boot 2021-09-13 15:56
$ uptime
09:11:03 up 31 days, 17:15, 13 users, load average: 0.48, 0.34, 0.42
https://unix.stackexchange.com/questions/673312
复制相似问题