私の地元の LUG のメーリング リストで、GNU/Linux システムで最後に発行されたコマンドを確認する方法があるかどうか尋ねられた人がいました。
私たちはシステム全体にわたる最後のコマンドについて話していると思います。しばらく考えた後、対話型コンソールを使用して実際のユーザーが発行したコマンドのセットに限定すると、最後のコマンドがコマンド履歴に登録されるはずです。
この質問に対する別の考え方は、GNU/Linux ボックスで作成された最後のプロセスがまだ実行中か、すでに実行が終了しているか、親プロセスやその他の関連情報に関して、どのように判断するかを尋ねることです。
答え1
プロセスアカウンティングに役立つ Linux 用のパッケージを見つけました。
私の Ubuntu 9.10 システムでは、プログラム「acct」をインストールするために次の操作を実行しました。
sudo apt-get install acct
次に、空のログ ファイルを作成する必要があります。これは次のように実行できます。
sudo touch /var/log/pacct
その後、プロセスアカウンティングを有効にする必要があります。
sudo /usr/sbin/accton /var/log/pacct
その時点から、プロセスはそれを実行したユーザーと関連付けられた端末とともにログに記録されます。
ログ ファイルは次のコマンドで確認できます。
lastcomm -f /var/log/pacct
まだこのプログラムを調べているところですが、これは役立つようです。
答え2
特定のユーザー(およびシェル)の場合: 履歴
現在のプロセスの場合: ps
答え3
システム全体のものはかなり複雑に見えます。そのようなシステムでは、すべてのユーザーの .bash_history を監視するプロセスが必要です。その後、それが更新されると、中央データベースが更新されます。これが完了すると、中央データベースから取得する "history" コマンドの拡張機能が作成できる可能性があります。悪いアイデアではありませんが。
答え4
使用できますスヌーピー実行されるすべてのコマンドを監視します。