Linux簡易ログ監視

簡易的なログの監視であれば,下記のようなシェルスクリプトを作って,tail -f コマンドにつないでバック グラウンド ジョブとして投入しておけばよい.

# action.sh
while read i
do
    echo $i |grep -q hello
    if [ $? = 0 ]
    then
        echo 'hit'
    fi
done

# tail -n 0 -f /var/log/messages | ./action.sh &

loggerコマンド

シェルスクリプトからsyslog(/var/log/messages)にメッセージを出したい場合は,loggerコマンドを使えばよい.

単に,logger hello と実行すると

# logger hello
Feb 25 13:27:09 hostname root: hello

となってしまうので,-tオプション(タグ オプション)を使って,アプリケーション名やスクリプト名などを出しておくとよいだろう.ついでに,通常はスクリプト内で使う場合,エラーメッセージはコンソールにも出しておきたいと思うので,-s(同じメッセージを標準エラー出力にも出すオプション)をつけて下記のように実行するとよい.

# logger -s -t app hello
Feb 25 13:29:41 hostname app: hello

備考

Links

Linuxサーバーの監視


はたいたかし
2016-02-25
Home > Linux > How-To > logger