ディスクの空きが少なくなった時に注意メールを送る

df で次のように表示される事を想定した際に、シェルスクリプトで指定した%を超えた時にメールでお知らせを送る。

$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda2            100893076  91005564   4762344  96% /
tmpfs                   510288         0    510288   0% /dev/shm
/dev/sda1               247919     50566    184553  22% /boot

シェルスクリプトの例

hdd_use_check.sh スクリプト

  • sda2のディスクに対して確認する
  • 95%を超えた時を確認
  • メールアドレスの部分で指定したメールに注意のメールを送る
#!/bin/bash
 
SERVER_ID=サーバーの区別がつく文字列
CHKDEVICE=/sda2
CHKPER=95
USEPER=$(df | grep "$CHKDEVICE" | tr -s " " | cut -d" " -f 5 | tr -d "%")
 
#echo check device:$CHKDEVICE / test $USEPER -gt $CHKPER
# true:0  / false:1
#test $USEPER -gt $CHKPER
#echo $?
 
 
if test $USEPER -gt $CHKPER; then
        df -h | mail -s "$SERVER_ID: disk space small / now $USEPER % use" メールアドレス
fi

※ mail コマンドをでメールが送信できるようにしてください。
※ ファイル名は管理しやすい名称にしてください。