監視するログファイルがあり、満たされている条件に応じて別のコマンドを実行する必要があります。
私はこれに近い解決策を見つけましたここ。残念ながら、それは私には機能しません、ただ端末に空白行を提供します。
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
無限に大きくなったり、ストレージスペースを満たさないログをログプロセッサに処理させることができます。