コンピュータがいつ再起動するのか、そしてその理由は何ですか?

コンピュータがいつ再起動するのか、そしてその理由は何ですか?

私の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時間です。システムの起動にかかる時間(秒単位)。ファイルの2番目のフィールドは、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秒以内に印刷します。 10進数でawkはsystime整数だけを返すので、1秒以内に言いました。

誰が再起動したのか、なぜ再起動したのかを教えてくれません。最善の方法は、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

マシンのダウンタイムを確認するには、次のコマンドを使用します。

履歴をアップロード

リストに表示されない時間は再起動時間です。

関連情報