ディスク容量不足をメール通知するスクリプト
Nagios等は使ったことがあるのだが、いろいろとややこしいので使う気になれない。単純にディスク容量不足の時にメール通知して欲しいだけだ。
方針
- 実行された時に、容量不足を検出し、不足していたら、メールで通知する。
- これをcronで定期的に動作させる。
これだけだ。単純なものである。
シェルスクリプトのテスト
だいたいこんなものか、「df フォルダパス」を実行し、%数値を取得してそれがALERTより大きかったら文字列を表示する。もっと簡単になるかもしれないが、初心者なのでこれで良しとする
#/bin/sh
FOLDER=/
ALERT=90
usage=$(df $FOLDER | sed -n 2P | awk '{print $5}' | cut -d'%' -f1)
echo $usage
if [ $usage -ge $ALERT ]; then
echo "Alert: out of disk space $usage"
fi
コマンドラインからメールする
別記事Linuxのコマンドラインからメールするに移動した。
容量不足を検出したらメールを送信するスクリプト
結局、このようになった。
#/bin/sh
FOLDER=/
ALERT=90
usage=$(df $FOLDER | sed -n 2P | awk '{print $5}' | cut -d'%' -f1)
echo $usage
if [ $usage -ge $ALERT ]; then
echo "Alert: out of disk space $usage"
msmtp admin@example.com << EOF
From: admin@example.com
To: admin@example.com
Subject: Alert: out of disk space $usage
You have no time to deal with disk shortage!!!
EOF
fi
cronで定期実行する
あとは、これをcronで定期実行すればいい。これは説明の必要はないだろう。