ログファイルを回転しながら圧縮する必要があるユースケースがあります。
具体的には、サイズの回転に基づいて監査証跡を実施しました。
したがって、ログファイルのサイズが100Mに達したら、回転して次の内容を追加します/var/log/messages
。
監査デーモンは keep オプションを使用してログファイルを循環します。
audit.log.1
この行が書き込まれたときに生成されたファイルを圧縮するスクリプトを実行したいと思います。omprog
もっと良い方法がなければ、これが最善の方法だと思います。
omprogのドキュメントはあまり明確ではありません。 rsyslogまたは他の種類のデーモンを使用してファイルシステムを監視し、ファイルが存在するときに圧縮スクリプトをトリガーしようとしていますか?
答え1
メッセージを照合してプログラムを実行するには、/etc/rsyslog.d/99-myaudit.conf
次の内容でファイルを作成します。
module(load="omprog")
if $msg startswith ' Audit daemon rotating log files' then action(type="omprog" binary="/bin/myprog")
再起動してくださいrsyslogd
。メッセージ文字列の先頭にスペースがある可能性があるため、スペースを追加しました。必要に$msg contains 'Audit daemon rotating'
応じて、よりルージュなフィットに行くこともできます。
/bin/myprog
メッセージが一致すると、実行可能なプログラムまたはスクリプトが実行されます。標準入力に一致するメッセージを提供します。プログラムが終了すると、次にメッセージが一致したときに再起動されます。
テスト中にプログラムの出力を収集するためにファイル名を追加できますaction(type="omprog" binary="/bin/myprog" output="/tmp/mylog")
。たとえば。オフログ。