rrdtool
着信パスが正しくないことを確認するためにログを記録する方法の特定のインスタンスを見つけようとします。
引数を記録するシェルスクリプトで実行可能ファイルをラップできることを知っていますが、それを監視するカーネル専用の方法があるかどうかを知りたいです。特定の/proc/pid/で実行できるファイルシステムコールバックがあるかもしれません。与えられたものと一致するバイナリを見つけるときにexeを使用しますか?
ベストアンサー1
はい、監査サブシステムと呼ばれるカーネル機能があります。デーモンはauditd
ロギングを実行し、コマンドはauditctl
ロギングルールを設定します。特定のシステムへのすべての呼び出しを記録し、いくつかのフィルタリングを実行できます。実行されたすべてのコマンドとそのパラメーターを記録するには、execve
システム呼び出しを記録してください。
auditctl -a exit,always -S execve
特定のプログラムへの呼び出しを具体的に追跡するには、プログラムの実行可能ファイルにフィルタを追加します。
auditctl -a exit,always -S execve -F path=/usr/bin/rrdtool
ログは、/var/log/audit.log
ディストリビューションが配置する場所または場所に表示されます。監査サブシステムを制御するには、ルートである必要があります。
調査が完了したら、代わりに同じコマンドラインを使用してログ記録-d
ルール-a
を削除または実行して、auditctl -D
すべての監査ルールを削除します。
デバッグ目的でプログラムをラッパースクリプトに置き換えると、環境や親プロセスに関する情報などを記録するための柔軟性が高まります。