シェルスクリプトで作る簡単なログ監視スクリプト

シェルスクリプトでログ監視

いろんなサイトでログ監視スクリプトの紹介がありますが、どれもこれもswatchを使った物ばかりです。
個人的にはインスコするのが面倒くさいので、スクリプトを書いてしまいます。
このスクリプトは、こんな人にお勧めです。 それでスクリプトを次に書いときます。
適宜自分の環境に直してください。
このスクリプトは正直、動作が遅いです。
検索〜メールをあげる部分のロジックはrubyとかで書いた方が、grepを毎回起動するよりも早いと思われます。

実際のスクリプト

環境変数の設定

その他


スクリプト

#!/bin/sh

PATH="/bin:/usr/bin:/usr/local/bin"
export PATH

#環境変数
LOGPATH="/service/qmail-smtp/log/main"
FILE="current"
PATTERN="deny"
SUBJECT="ALERT-LOGWATCH"
MAIL_TO="hogehoge@example.co.jp"

cd "$LOGPATH"
tail -n 1 --follow=name $FILE | while read INPUT; do
 echo "$INPUT" | grep "$PATTERN" > /dev/null
 RET=$?
 if [ "$RET" == "0" ]; then
  echo "$INPUT" | tai64nlocal | mail -s "$SUBJECT" "$MAIL_TO"
 fi
done

もどる

by 2001- (C) Watanabe Keiji <<Send Mail>>