ディスク容量(df)を監視して、規定値以上を超えたらアラートメールを送るシェル
2011年12月6日ディスク容量(df)を監視して、規定値以上を超えたらアラートメールを送るシェル
たまたまリモートサーバで作業していたら、/homeのディスク容量が98%にまでなっていました。
原因は解消したものの、似たような事象がまた起こらないとも限らないので、アラートメールを送信するシェルを発見。
ありがたく使わせてもらいます。
参考: サーバーの空き容量を監視してアラートメールを送ってくれるシェルスクリプトを書いたよ
【設置手順】
以下の手順で設置します
- シェルの作成
上記の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
- シェルの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%