上次重启命令不同意

Dim*_*Dak 4 reboot

关于显示上次重启的不同命令有不同的看法。谁是对的?

# uptime
 10:05:31 up 90 days, 12:59,  2 users,  load average: 0.04, 0.02, 0.00

# who -b
             system boot  2018-11-22 21:05
# last reboot

wtmp begins Sat Feb  2 01:59:42 2019
Run Code Online (Sandbox Code Playgroud)

Sor*_*n A 9

他们都是正确的。

  • uptime 显示系统已经运行了 90 天和几个小时。
  • who -b 说系统是在 2018-11-22 21:05 .. 90 天和几个小时前启动的。
  • last reboot 说 wtmp 日志文件在 2019 年 2 月 2 日星期六 01:59:42 被翻转或截断,因此它不包含重新启动记录。


Arr*_*cal 6

uptime命令会告诉您当前时间,然后是系统运行的时间长度。在您的示例中,这表明系统已运行 90 天 12 小时 59 分钟。

who -b为您提供与相同启动时间相对应的日期和时间。那里只有几秒钟的差异,我认为这是命令之间花费的时间。

last reboot命令使用该/var/log/wtmp文件来确定上次启动。此日志文件自上次启动后已轮换,因此不包含有关上次启动的信息。可能有一个旧版本的 wtmp,例如/var/log/wtmp.1您也可以查询:

last reboot -f /var/log/wtmp.1
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于时间限制,它不太可能包含您上次重新启动的详细信息。

  • 它可以告诉您上次重新启动是什么,但它必须足够新,以便在最新版本的 wtmp 文件中仍然可用。必须有一种方法可以重新配置保存了多少 wtmp 文件。如果您现在重新启动服务器,然后发出“上次重新启动”,它将显示在输出中。当前输出仅意味着 wtmp 中没有记录的重新启动。 (3认同)