ディスク空き容量チェックメール自動送信

動作確認済みシステム Debian 11

サーバでは、空き容量がなくなると、以下のような問題が起こりえます。

  • アップデートの適用ができない
  • データを作成できない
  • ログが残せない

これを予防するために、定期的に空き容量をチェックすべきでしょう。

そこで、定期的にディスクの空き容量を確認してメールで送信するスクリプトを作成します。

cd /root/bin/
vi check_df.sh
#!/bin/bash

HOSTNAME="Digitalmania.info"
MAILADDR=administrator@digitalmania.info

LIMIT=90

SUBJECT="[$HOSTNAME] Disk Free Space Check Results"

while read LINE
do
        PER=`echo $LINE | sed 's/^.* \([0-9]*\)%.*$/\1/'`

        if [ $PER -gt $LIMIT ]; then
                SUBJECT="<WARN!> $SUBJECT"
        fi
done < <(df | grep '[0-9]\{1,\}%')

df -h | mail -s "$SUBJECT" $MAILADDR

使用量が90%を超えているものがあれば、タイトルの先頭に「<WARN!>」を付けるようにしています。

作成したスクリプトに実行権限を与えます。

chmod +x check_df.sh

作成したスクリプトを文法チェックします。

/bin/bash -n check_df.sh

何も表示されなければ、文法チェックOKです。

定期実行の設定を行います。

vi /etc/cron.d/check_df
MAILTO=root
00 0 * * 0 root /root/bin/check_df.sh

毎週日曜日の0時にrootユーザで/root/bin/check_df.shを実行する、という設定です。