ログファイルを監視し、さまざまな状況に応じてさまざまなコマンドを実行します。

ログファイルを監視し、さまざまな状況に応じてさまざまなコマンドを実行します。

監視するログファイルがあり、満たされている条件に応じて別のコマンドを実行する必要があります。

私はこれに近い解決策を見つけましたここ。残念ながら、それは私には機能しません、ただ端末に空白行を提供します。

xterm -e "$path_to_program | tee -a ${log_path}" & tail -f ${log_path} | awk '/Initialization Sequence Completed/ { system("echo "VPN is running."") } /[HOST_NOT_FOUND]/ { system("echo "error"") }

私の問題を解決するのに役立つ他の解決策はありますか?

ベストアンサー1

上記のサンプルコードでは、文字を正しくエスケープしていません。次のようなものがさらに必要です。

tail -f ${log_path} | awk '/Initialization Sequence Completed/ { system("echo \"VPN is running.\"") } /\[HOST_NOT_FOUND\]/ { system("echo \"error\"")}'

logrotateを試してみることもできます。このルールを使用すると、postrotate無限に大きくなったり、ストレージスペースを満たさないログをログプロセッサに処理させることができます。

おすすめ記事