ディスク容量(df)を監視して、規定値以上を超えたらアラートメールを送るシェル

ディスク容量(df)を監視して、規定値以上を超えたらアラートメールを送るシェル

たまたまリモートサーバで作業していたら、/homeのディスク容量が98%にまでなっていました。
原因は解消したものの、似たような事象がまた起こらないとも限らないので、アラートメールを送信するシェルを発見。
ありがたく使わせてもらいます。

参考: サーバーの空き容量を監視してアラートメールを送ってくれるシェルスクリプトを書いたよ

【設置手順】

以下の手順で設置します

  1. シェルの作成

    上記のURLを参考にシェルを作成します

    $ sudo vim /usr/local/sbin/df_alert.sh

    \#!/bin/sh
    DVAL=/bin/df / | /usr/bin/tail -1 | /bin/sed 's/^.* \([0-9]*\)%.*$/\1/'
    if [ $DVAL -gt 80 ]; then
    echo “Disk usage alert: $DVAL %” | /bin/mail -s “[WARNING][hostname] disk space alert” YOUR_EMAIL_ADDRESS
    fi

    $ sudo chmod 755 /usr/local/sbin/df_alert.sh

  2. シェルのcron登録

    作成したシェルをcronへ登録します

    $ sudo crontab -e
    \# Disk Usage Alert
    \# Author: KYO
    0 10 * * * /bin/sh /usr/local/sbin/df_alert.sh > /dev/null 2>&1

検証

一旦シェルを修正して、規定値を変更後シェルを実行します

$ df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/md1 5.9G 2.4G 3.2G 43% /
/dev/md2 9.7G 2.2G 7.1G 23% /home
/dev/md0 3.9G 1.3G 2.4G 35% /var
/dev/hdb1 190M 24M 157M 14% /boot
tmpfs 753M 0 753M 0% /dev/shm

この場合、規定値を「40」とすれば検証が可能です
また、「30」とすれば複数のパーティションで規定値を超えた場合の検証が可能
検証後は、「80」へまた戻します

アラートメール

アラートメールは、以下のような形式のものが送信されてきます
(内容は検証時のもの)

  • タイトル: [WARNING][ホスト名] disk space alert
  • 本文: Disk usage alert: 43%