簡易的なログの監視であれば,下記のようなシェルスクリプトを作って,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 &
シェルスクリプトから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
Linuxサーバーの監視