ディスク容量不足をメール通知するスクリプト

2023年8月12日

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で定期実行すればいい。これは説明の必要はないだろう。

未分類

Posted by ysugimura