サーバーの不具合をメールで通知する

curl、crontabなどを使ってページが正しく表示されていない場合にメールで通知するように設定してみた。

まずcurlを使ってページの情報を取得する。

curl "example.com" 

でページの情報を表示できる。今回はオプションは使わなかった。 あらかじめ正常なページに含まれる文字列の一部を判定用キーワードとしてシェルスクリプトに入力しておき、curlで表示された内容からキーワードをgrepやcutなどで抽出したものと比較して一致すれば正常、しなければ異常として判定した。 正常なページに”keyword”が含まれる場合

A="keyword"
curl "nagatsuka.testtotest.com" | grep "keyword" > sample
B=`cut -f 2 -d "\"" sample|uniq`

こんなふうなシェルスクリプトを作った。

これを自動で定期的に実行するためcrontabを使用した。 今回は毎分実行するようにしたので、次のようになった。

*/1 * * * * /root/observe.sh