私はバックグラウンドで実行され、コンピュータの使用量(時間単位)を追跡し、毎日、毎週、毎月の時間範囲に関する簡単なレポートを提供する簡単なプログラムを探しています。私の環境:
- Fedoraデスクトップ
- Xfce環境
私が正確に何をしたかを追跡する必要はありません。通常の稼働時間を追跡するだけで十分です。
ただし、コーディング、スクリプト、または複雑なコマンドは必要ないため、レポートの抽出は非常に簡単にする必要があります。
答え1
デフォルトでは、すべてのLinuxコンピュータは開始時間と終了時間などのイベントを記録します。
Linuxが起動からシャットダウンまでの期間(およそコンピュータの電源が入っている時間)を確認するには、システムのデフォルトアカウント(utmp / wtmp)を使用できます。
次のシェルコマンドを使用します(一般ユーザーとしてroot権限は必要ありません)。
# last reboot
reboot system boot 5.5.4-1-default Fri Feb 21 14:07 still running
reboot system boot 5.5.2-1-default Thu Feb 20 12:53 - 14:02 (01:08)
(...)
コンピュータの起動時間と期間(最後の括弧内)が表示されます。
これは、コンピュータが休止状態(ディスクまたはRAMに中断)に入った時間を表示しないため、より複雑な作業を必要とします。
先週の時間などを表示するには、last
new--since
とオプションを--until
使用して最新バージョンのコマンドを使用できます。
last --since "`date --date='monday 3 weeks ago' +%Y-%m-%d`" \
--until "`date --date='monday 2 weeks ago' +%Y-%m-%d`" \
reboot
指定された注意時間(最後の再起動)を提供します。同じ方法を数ヶ月続けることができます。ここではコマンドラインを使用して提供します。
last --since "`date --date='2 months ago' +%Y-%m-%d`" --until "`date --date='1 month ago' +%Y-%m-%d`" reboot
デフォルトでは、その月の最初の日が使用されます。これはあなたが望むようです。
上記のコマンドラインは、last
次の日付を使用してコマンド(util-linuxで)を呼び出します。2019-12-27
これは、コマンドで許可されるいくつかの形式の1つです。我々は、(GNU coreutilsの)コマンドを使用して、より人間的で読みやすい形式で表示される日付を示すフォーマット文字列を介してdate
このフォーマットを生成します。%Y-%m-%d
date