tail -f log.txt
のようなログファイルを監視する安価な方法があり、[error]
のようなものが表示された場合、コマンドを実行しますか?
ありがとうございました。
tail -fn0 logfile | \
while read line ; do
echo "$line" | grep "pattern"
if [ $? = 0 ]
then
... do something ...
fi
done
また、awkを使用してパターンを監視し、パターンが見つかったときに何らかのアクションを実行できることもわかりました。
tail -fn0 logfile | awk '/pattern/ { print | "command" }'
これは、パターンがログで見つかったときにコマンドを実行します。コマンドには、シェルスクリプトなどを含む任意のUNIXコマンドを使用できます。
さらに堅牢なアプローチは monit です。このツールは非常に多くのことを監視できますが、その1つは1つ以上のログを簡単に追跡し、正規表現と照合してからスクリプトをトリガーすることです。これは、監視するログファイルのコレクションまたはトリガーする複数のイベントがある場合に特に便利です。
バッターとシンプル:
tail -f log.txt | egrep -m 1 "error"
echo "Found error, do sth."
...