DISKの使用率が規定値以上になるとメールするスクリプト
Contents
概要
DISKの使用率が90%以上になるまで気付かなかったケースがありました。
監視ソフトでDISKの使用率・CPU負荷などは監視していて、DISKの使用率が90%を超えるアラートメールが届いていましたが、他のメール多すぎて、その中に埋もれて見逃していました。
見逃さないようにDISKの使用率が90%とかの規定値を超えるとメールするスクリプトを作りました。
DISKの使用率が多くなったら送信するメールアドレスは携帯キャリアのアドレスしたので、見逃す可能性は低いと思います
DISK使用率の監視して規定値(90%)になるとメール送信するスクリプト
サンプルのDISK構成
サンプルですがDISK構成は以下の構成として監視スクリプトを作成しています。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 394G 26G 349G 7% / /dev/sda2 447G 146G 279G 35% /home tmpfs 1.0G 0 1.0G 0% /dev/shm
DISK使用率の監視スクリプト
スクリプトに内容ですが、dfコマンドを叩いて、監視するDISKの使用率の値を取得しています。if文で規定値(90%)以上になると、mailコマンドでメールするスクリプトです
#/bin/bash # 監視ファイルシステム MONDEV=/dev/sda1 #---メール関係--- #ホストネーム SVNAME=`hostname` #メールを送信するメールアドレスを指定する MAILTO=user@hoge.com #メールの件名を生成 MAIL_SUB="$SVNAME ALERT DISK SPACE" #メール本文に使用するファイルを指定する MAILFILE=/var/tmp/diskchk_mail.txt #メールの本文を生成 hostname > $MAILFILE date "+%Y/%m/%d %H:%M:%S" >> $MAILFILE echo "WARNNING DISK SPACE" >> $MAILFILE df -h >> $MAILFILE DISK_USE=`df $MONDEV |tail -1 | /bin/sed 's/^.* \([0-9]*\)%.*$/\1/'` if [ $DISK_USE -gt 90 ]; then #メールを送信する mail -s $MAIL_SUB $MAILTO < $MAILFILE fi
監視するDISKの2つの場合のスクリプト
監視するDISKの本数が2本場合は、監視するDISK毎にDISK使用率を取得して処理すれば、監視するDISKが増えても使用できます
#!/bin/bash # 監視ファイルシステム MONDEV1=/dev/sda1 MONDEV2=/dev/sdb1 #---メール関係--- #ホストネーム SVNAME=`hostname` #メールを送信するメールアドレスを指定する MAILTO=user@hoge.com #メールの件名を生成 MAIL_SUB="$SVNAME ALERT DISK SPACE" #メール本文に使用するファイルを指定する MAILFILE=/var/tmp/diskchk_mail.txt #メールの本文を生成 hostname > $MAILFILE date "+%Y/%m/%d %H:%M:%S" >> $MAILFILE echo "WARNNING DISK SPACE" >> $MAILFILE df -h >> $MAILFILE DISK_USE=`df $MONDEV1 |tail -1 | /bin/sed 's/^.* \([0-9]*\)%.*$/\1/'` if [ $DISK_USE -gt 90 ]; then #メールを送信する mail -s $MAIL_SUB $MAILTO < $MAILFILE fi DISK_USE=`df $MONDEV2 |tail -1 | /bin/sed 's/^.* \([0-9]*\)%.*$/\1/'` if [ $DISK_USE -gt 80 ]; then #メールを送信する mail -s $MAIL_SUB $MAILTO < $MAILFILE fi
ディスカッション
コメント一覧
まだ、コメントがありません