web-dev-qa-db-ja.com

すべてのシェルコマンドをログに記録する方法

Ubuntu Server 12.04を実行していて、すべてのシェルコマンドをログに記録しようとしています。私はrsyslogをデフォルトで使用しようとしています。追加した "*.* /var/log/everything.log "のrsyslog.confおよび50-default.confですが、いくつかのエントリ(ログイン、ログアウト、サービスの停止/開始)しか取得しておらず、すべてを取得したいと思っていますls, cd [path], [Wrong command]

Rsyslogで何かを変更したり、他のアプリケーションを詳細に設定したりする必要がありますか?.

Thx SP

1
Sime

何をしたいかに依存します。ユーザーが実行するすべての内容を監視する場合は、いいえ、これは簡単には不可能です。 bos と呼ばれるプログラムの管理スイートがあり、実行中のすべてのプロセスを監視するために使用できます。

ただし、youと入力するすべてのコマンドを保存するだけの場合は、はい、これはbashによって行われます。 Bashはコマンド履歴を~/.bash_historyに保存します。ただし、デフォルトでは、シェルが終了したときにのみコマンド履歴が書き込まれます。ほとんどの履歴が保存されるようにカスタマイズしたい場合は this Webページをお読みください。

1
January

セッション全体をログに記録したい場合(つまり、両方のコマンドを入力し、それらのコマンドからの結果)、次のコマンドを使用します。

script

引数がない場合、結果は現在のディレクトリの「TypeScript」というファイルに保存されます。

script bogus.txtは「bogus.txt」に保存されます

コマンドの完全なリストについては、manページを参照してくださいman script

0
john