スタンバイから最後に復帰してからの稼働時間を知りたい。
このコマンドuptime
は、現在の時刻から最後の起動時刻を引いた差のみを表示します。
スタンバイから最後に復帰してからの稼働時間を知りたい。
このコマンドuptime
は、現在の時刻から最後の起動時刻を引いた差のみを表示します。
回答:
で/var/log/pm-suspend.log
、次のような最後の行を探します。
Sun Dec 16 09:30:31 CET 2012: Awake.
それが最後の起床時間です。ポールが提案した方法から、アップタイムを計算できます。
定期的にlogrotate
ログを「回転」させて、ログが大きくなりすぎないようにしpm-suspend.log
ます。そのため、空のファイルが見つかることがあります。この場合は、pm-suspend.log.1
ファイルを探すだけです(like pm-suspend.log.2.gz
などの名前のログファイルも見つかる場合があります。zcat
またはを使用して調べることができますzless
)。
pm-suspend.log
空の場合はどうなりますか?:(
cat /var/log/pm-suspend.log /var/log/pm-suspend.log.1 | grep -B1 Awake; echo "--"; zcat /var/log/pm-suspend.log.*.gz | grep -B1 Awake
systemdを実行しているデスクトップ/サーバーの場合、情報を直接伝える直接的なコマンドはありませんが(私の知る限り)、すべてのデータはジャーナルにキャプチャされます。
たとえば、ジャーナルをgrepできます。
echo ">> [SUSPEND] Times during current boot"
journalctl -b 0 |grep "]: Suspending system..."
echo ">> [WAKE] Times during current boot"
journalctl -b 0 |grep "PM: Finishing wakeup"
または、派手な出力のために、python3スクリプトを作成しました(Fedora 23で正常に動作します)。サンプル出力:
Initial Boot Timestamp: 2016-01-15 09:31:32
Wake Timestamp | Suspend Timestamp | Awake Time |
-------------------- | -------------------- | -------------------- |
2016-01-15 09:31:32 | 2016-01-15 09:36:03 | 0h 4m |
2016-01-15 09:36:22 | 2016-01-15 19:15:04 | 9h 38m |
2016-01-15 19:22:21 | 2016-01-15 20:00:05 | 0h 37m |
...
------------------- | -------------------- | -------------------- |
Summary: Days Since Boot [8.23] | Days Awake [4.14] | Suspend/Wake Cycles: [28]
スクリプトはgithubにあります。githubリポジトリへのリンク
journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1
最後のウェイクアップの時間だけに使用
コンピュータをサスペンドする方法は、pm-suspendプログラムだけではありません。このプログラムのログは空になりましたが、より信頼性の高いコマンドが見つかりました。
cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed"
出力は次のとおりです。
Oct 2 09:11:48 dmatej-lenovo systemd-sleep[931]: Suspending system...
Oct 2 09:53:10 dmatej-lenovo systemd-sleep[931]: System resumed.
Oct 2 15:02:48 dmatej-lenovo systemd-sleep[27516]: Suspending system...
Oct 2 16:07:19 dmatej-lenovo systemd-sleep[27516]: System resumed.
Oct 2 16:32:48 dmatej-lenovo systemd-sleep[29622]: Suspending system...
Oct 2 17:16:41 dmatej-lenovo systemd-sleep[29622]: System resumed.
Oct 3 00:24:58 dmatej-lenovo systemd-sleep[21316]: Suspending system...
Oct 3 08:17:22 dmatej-lenovo systemd-sleep[21316]: System resumed.
Oct 3 09:09:25 dmatej-lenovo systemd-sleep[24739]: Suspending system...
Oct 3 09:50:47 dmatej-lenovo systemd-sleep[24739]: System resumed.
ステップの回答の改良版を修正
grep ': Awake' /var/log/pm-suspend.log
編集してくれてありがとうコメント:D
cat
ポイントの無駄な使用を獲得しました!
スタンバイを開始するために何を使用していますか?
スクリプトを使用できる場合は、行の後
echo -n "standby" > /proc/acpi/sleep
あなたはラインを持つことができます
echo `date +%s` >> /var/log/wakeups.log
または似たようなもの。これは、マシンが目覚めたときに最初にしたことは、現在の日時をログファイルに書き込むことであることを意味します(エポックからn秒)。
その後tail -1 /var/log/wakeups.log
、あなたに最後の時間を与えるでしょう。これを現在の時刻から減算して、最後のウェイクアップからの秒数を取得できます。
これらの答えはどれも私にとってはうまくいきませんでした。しかし、私はsleep.target
これがまさにこれのために作られていることを便利に見つけました:
$ journalctl -n4 -u sleep.target
nov. 17 17:16:37 kaa systemd[1]: Reached target Sleep.
nov. 17 18:46:22 kaa systemd[1]: Stopped target Sleep.
nov. 17 19:27:31 kaa systemd[1]: Reached target Sleep.
nov. 17 19:45:21 kaa systemd[1]: Stopped target Sleep.