ERRORログをメールで通知する ~tailコマンド編~

| | Comments (0) | TrackBacks (0)

Linuxを使っていれば、ログファイルのようにどんどん増え続けるファイルの内容を視認するために、「tail」コマンド「-f」オプションを使用して監視する場面が多いと思います。

「tail -f」コマンドは監視対象のファイルのサイズが小さくなっても自動末尾を検知し、そこから読み込みを再開します。

さらに、「--retry」オプションを使用すれば、監視対象のファイルが削除・リネームされても同じ名前のファイルが作成されると再び監視を開始するので、ログのローテーションにも対応できるというわけです。

 この「tail」を利用すれば、簡単なスクリプトを使って、検知したメッセージをメールで通知ということも可能になります。

サンプルのように、「alert」という名前でシェルスクリプトを作りました。

下のように実行すると「test.log」の監視を開始します。

$ ./alert test.log

 

「test.log」に「ERROR」という文字が追記されると「test@example.com」宛てに、追記された内容がメールで通知されます。 特別なツールの導入の必要なしにログ監視ができます。

【サンプル:alert】

#!/bin/sh
mail_alert() {
  while read i
  do
    echo $i | grep -q ERROR
    if [ $? = "0" ];then
      echo $i | mail -s ERROR test@example.com
    fi
  done
}

tail -n 0 --follow=name --retry $1 | mail_alert

0 TrackBacks

Listed below are links to blogs that reference this entry: ERRORログをメールで通知する ~tailコマンド編~.

TrackBack URL for this entry: http://lab.hde.co.jp/blog/mt-tb.cgi/31

Leave a comment

About this Entry

This page contains a single entry by Takehiko Kodama published on April 1, 2008 5:52 PM.

メール解析プログラムをJavaScriptで書いてみた、の巻 was the previous entry in this blog.

送信ドメイン認証の導入後に想定される問題点とその対策 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.