ログの特定の文字列を監視し、メール送信する場合の処理です。
監視対象ログファイル:/var/log/mirakurun/mirakurun.stderr.log
監視対象文字列:”Error: no available tuners”
メール送付先:sample@test.com
vi logchecker.sh
#!/bin/sh
# 検出対象ログファイル
TARGET_LOG="/var/log/mirakurun/mirakurun.stderr.log"
# 検出文字列
_error_conditions="Error: no available tuners"
# ログファイルを監視する関数
hit_action() {
while read i
do
echo $i | grep -q "${_error_conditions}"
if [ $? = "0" ];then
# アクション
mail -s "Alert:Check Log Files" sample@test.com < /etc/issue
fi
done
}
# main
if [ ! -f ${TARGET_LOG} ]; then
touch ${TARGET_LOG}
fi
tail -n 0 --follow=name --retry $TARGET_LOG | hit_action
# スクリプトの実行
/usr/local/bin/logchecker.sh > /dev/null 2>&1 &
リンク
参考にさせていただきました。ありがとうございます。