私の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
マシンのダウンタイムを確認するには、次のコマンドを使用します。
履歴をアップロード
リストに表示されない時間は再起動時間です。