了解我的计算机何时重新启动以及原因?

了解我的计算机何时重新启动以及原因?

我的 ubuntu 机器正在运行 Ubuntu 10.10,并且该机器正在运行我的应用程序服务器。

我怀疑我的机器今天在某个时间重新启动,但我不知道如何找出我的机器今天什么时间重新启动?如果它重新启动了,那么是谁重新启动了它以及为什么它重新启动了。有什么办法可以找到这些详细信息吗?

我尝试使用uptime,这就是我得到的结果,这意味着我的机器已经运行了 20 小时 21 分钟(我说得对吗?)

david@machineA:~$ uptime
 22:55:37 up 20:21,  3 users,  load average: 0.01, 0.05, 0.01

谁能给我提供一些步骤,我如何才能找到这些详细信息?

答案1

第一个字段/proc/uptime是你的朋友何时(用 来阅读cat /proc/uptime)。这是系统启动的秒数。该文件的第二个字段是系统上空闲的 cpu 秒数(将其除以该系统中列出的 CPU 数/proc/cpuinfo以获得实际秒数)。

# if your awk is new enough, 1 second resolution.
awk '//{print strftime("%c",systime()-$1)}' /proc/uptime 
# for older awk, but requires bc binary, high resolution
date -d @$(echo $(date +%s.%N) - $(awk '{print $1}' /proc/uptime) |bc )
# older awk, 1 second resolution, no bc
date -d @$(( $(date +%s) - $(awk '{printf "%d",$1}' /proc/uptime) ))

将打印系统的启动时间,1秒之内。我说 1 秒内,因为 是小数,而 awk 只返回systime整数。

这不会告诉您谁或为何重新启动。您能做的最好的事情就是命令的输出last,它将记录正常的关闭和重新启动;以及由于硬重启而丢失的会话(例如电源故障、内核错误)。这些并不可靠,因为它们依赖于没有人篡改文件/var/log/wtmp*

以下是丢失会话的示例:

root@nms1:~# last -f /var/log/wtmp.1
root     pts/0        10.x.y.z      Mon Oct 27 05:41    gone - no logout 
root     pts/0        10.x.y.z      Mon Oct 20 04:55 - 16:47  (11:51)    

这是重新启动的示例。

[root@freepbx ~]# last
...
reboot   system boot  2.6.32-431.el6.x Mon Oct 20 13:46 - 16:13 (3+02:27)   
root     pts/2        10.x.y.z      Wed Oct 15 21:02 - 00:51 (2+03:48)   
root     pts/1        10.x.y.z      Wed Oct 15 14:17 - 00:51 (2+10:33)   
sitkasta pts/0        10.x.y.z      Tue Oct 14 20:23 - down  (5+17:22)   
root     pts/0        10.x.y.z      Tue Oct 14 10:43 - 20:22  (09:39)    

如果您想要更多内容,请查看audit框架之类的内容,并将重新启动/关闭命令发送到可靠且安全的远程日志记录目的地。

答案2

使用以下命令查找机器停机时间。

上传记录

列表中未显示的时间为重启时间。

相关内容