2010-07-24 20:12:11 +0000 2010-07-24 20:12:11 +0000
40
40

Linuxでシャットダウンを記録するログはありますか?

Linuxにはコンピュータがシャットダウンされるたびに記録されるログファイルがあるのではないかと思ったのですが?

私が質問している理由は、私のラップトップのバッテリーが特定の条件下でどのくらい持続するかをテストしているからです。私のラップトップはバッテリー残量が10分程度になると自動的にシャットダウンするように設定されているので、もしどこかにコンピュータがシャットダウンされた時に記録するログファイルがあれば、私のテストが非常に楽になります。

私はUbuntu 10.04を実行しています。ありがとうございます!

回答 (8)

29
29
29
2010-07-29 09:30:27 +0000

コマンドlast -x shutdownはどうでしょうか?

16
16
16
2010-07-24 21:43:43 +0000

/var/log/messagesファイルには、シャットダウンに関連した何かが入っているはずですが、例えば私の(CentOS 5)では以下のような行があります。

Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.

/etc/syslog.conf または /etc/rsyslog.conf またはそれに相当するものをチェックして、ログがそこに送られていることを確認してください。ログファイルを読むにはおそらく root 権限が必要になるでしょう。

また、それ自体はシャットダウンではありませんが、"last" コマンドは再起動を報告しているはずです。

最後にシャットダウンした時のログには本当に何もないのでしょうか?

テストのために、バッテリーが報告している情報のために、コンピュータは残り10分しか知らないことを覚えておいてください。シャットダウンを待つのではなく、ACPI情報を直接見ることができます。私のラップトップではここにあります。

/proc/acpi/battery/BAT0/

この中の「状態」と「情報」ファイルが面白そうです。ノートパソコンを様々な条件で動作させている間に、ステートファイルの残り容量を見て、どれくらいの速さで容量が減っているかを見ることができます。

5
5
5
2015-03-26 14:50:50 +0000

最初に、これが古いスレッドであることを知っていると言うことから始めさせてください。私がコメントしているのは、(今日私がしたように)ネット上でこれを見つけた他の人が明確な答えを得られるようにするためだけです。

第二に、以下のコマンドは悪習であり、「猫の無駄な使い方」(googleで検索)のカテゴリに該当することに注意してください…

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

この行は次のように変更されるべきです。

grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages

grep や、ほとんどの unix/linux コマンド (sed, awk など) は cat がファイルの内容を読み取る必要はありません。コマンドの後にファイルのパスと名前を置いて引数として渡せば十分です。パイプと別の外部コマンド(cat)を追加するのは時間とリソースの無駄です。

最後に、システムのシャットダウンや再起動の記録をどこで見つけるかについては、最後のコマンドを使ってください。これは /var/log/wtmp ログファイルを読み込んで、すべてのログイン/ログアウトエントリを探します。シャットダウンとリブートは実際にはシステムレベルのログイン/ログアウトイベントなので、ここに記録されます。ルートコンソールのシャットダウンも同様で、これはログアウトイベントです。

例:

last -5 reboot shutdown root

これは wtmp ログの最後の 5 つのリブート、シャットダウン、ルート (コンソールのシャットダウンを含む) エントリを表示します。

結果:

reboot ~ Mon Mar 23 14:51
shutdown ~ Mon Mar 23 14:49
root console Mon Mar 23 14:49 - shutdown (00:00)
reboot ~ Mon Mar 16 09:54
shutdown ~ Thu Mar 12 17:41

このスレッドに出くわした人の参考になれば幸いです。)

4
4
4
2010-07-24 20:16:46 +0000

var/log/messages ファイルには、この情報が含まれているはずです。

2
2
2
2010-07-25 01:22:07 +0000

あなたのコンピュータが過去にどれくらいの時間起動していたかを追跡したい場合は、uptimedのようなものを使用することができます。

これにはアップレコードと呼ばれるプログラムが付属しており、コンピュータがどれくらいの時間起動していたかを表示してくれます。

1
1
1
2017-01-19 18:02:30 +0000

last reboot は CentOS 6.7 で動作しました。

出力に年を表示するために、

last -F reboot

0x6&

-FスイッチはSolarisのようないくつかのシステムでは動作しないと思いますが。しかし、これはどうやらGNUの最後の一部のようです。

(https://unix.stackexchange.com/a/97597/174520) [ https://unix.stackexchange.com/a/97597/174520 ]に感謝します。

1
1
1
2014-05-07 13:52:00 +0000

ここでは、現在の日のメッセージを全てリストアップするためのワンライナーです。

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

これはCentOSでテストしたのでYMMV。

そしてもちろんlast rebootlast shutdown(前述の通り)もありますが、これは私のニーズには単純すぎます(日付だけを提供しています)。

0
0
0
2010-07-24 21:15:36 +0000

if no log is present, you may try to add some ‘date >>mylog’ to shutdown script(in some dists, it is called rc.shutdown)

or,There is also a way without previlage needed.

while [1];do sleep 5;date>mylog;sync;done

を実行して、次のセッションでは、末尾のMYLOGを実行します。

関連する質問

6
10
5
37
8