プログラムの開始および終了時間ログ

プログラムの開始および終了時間ログ

プライベートロギングのためにプログラムが実行される1日の合計時間(バックグラウンドにあっても最初から閉じるまで)を取得したいと思います。例:Firefoxブラウザ。

  • オープンおよび閉鎖時間を追跡するシステムログはありますか?
  • 利用可能な事前に構築されたユーティリティはありますか?

そうでなければ、スクリプトを書くための提案はありますか?

答え1

会計ユーティリティ(例えば GNUの実装)ユーザーアクティビティを追跡し、ユーザーアクティビティを報告するためのさまざまなツールを提供します。

lastcomm

最後に実行されたコマンドを一覧表示し、

sa

(次に実行root)はアクティビティの概要を提供します。

特定のプロセスが実行された時間を表示するには、次のようにします。

sudo sa | grep chromium

これにより、次のような多くの値が出力されます。

   5    6781.67re       3.78cp         0avio    265418k   chromium
   4    4521.35re       0.00cp         0avio    176024k   chromium*

最初の列は特定のプロセスが実行された回数、2番目の列はプロセスが実行された合計時間(分)です(おそらく同時に)。*他のバイナリを実行せずに分岐されたサマリープロセスで終わる短縮。ブラウザは複数のプロセスを同時に実行する傾向があるため、アスタリスクでマークされたインスタンスはこの場合に使用された追加のプロセスを表しているため、この値を減算すると実際にどのくらいの時間がかかったのかがわかります。

この値はすべてのユーザーに集約されるため、システムが唯一のユーザーである場合にのみ、お客様の目的に非常に役立ちます。

答え2

最後に、次のスクリプトを使用してプログラムを起動し、それをアプリケーションへのデフォルトのポインタに置き換えました。

#!/bin/bash
echo -n "$(date +%s)" >> ~/myapplog.log
/application_path/
echo ",$(date +%s)" >> ~/myapplog.log

デフォルトでは、アプリケーションの開始時間と停止時間を新しい行にコンマで区切って各セッションのタイムスタンプとして記録します。例: 1452663495,1452663502

(日付+%S)を希望の形式に変更できます(日付はマニュアルページを参照)。

関連情報