サーバのディスク容量を定期的に確認
サーバのディスク容量を定期的に確認するシェルスクリプト。
使用パーセンテージが設定値を超えた場合、メールを送信する。
設定間隔ごとに確認を行い、バックグランドで常に動作している。
capacity_check.sh
/root/script/check/capacity_check.sh として設置する。
実行権限を与える。
CODE:
-
#!/bin/bash
-
-
#-------------------------------------------------
-
# Confirmation script of the remainder capacity.
-
#
-
# Run:
-
# /usr/bin/nohup /root/script/check/capacity_check.sh > /root/script/check/capacity_check.out 2> /root/script/check/capacity_check.err </dev/null &
-
#
-
# crontab:
-
# @reboot /usr/bin/nohup /root/script/check/capacity_check.sh > /root/script/check/capacity_check.out 2> /root/script/check/capacity_check.err </dev/null &
-
#-------------------------------------------------
-
-
TO=na-ga.mobile@xxxxxx.naga
-
VALUE=80
-
TIME=3600
-
HOST=`hostname`
-
ERROR=0
-
-
while true
-
do
-
-
# Use percentage of capacity
-
USE_PERCENTAGE=`df / | tail -1 | sed 's/^.* \([0-9]*\)%.*$/\1/'`
-
-
# When the use percentage of capacity exceeds a set value
-
if [ $USE_PERCENTAGE -ge $VALUE ]; then
-
-
echo "[`date '+%Y/%m/%d %H:%M:%S'`] Use percentage of capacity is ${USE_PERCENTAGE}%, and it becamme more than a set value (${VALUE}%)." | mail -s "${HOST} remainder capacity [NG]" ${TO}
-
ERROR=1
-
-
# When status changes from NG into OK
-
elif [ $ERROR = 1 ]; then
-
-
echo "[`date '+%Y/%m/%d %H:%M:%S'`] Use percentage of capacity is ${USE_PERCENTAGE}%, and it became below a set value (${VALUE}%)." | mail -s "${HOST} remainder capacity [OK]" ${TO}
-
ERROR=0
-
-
fi
-
-
# Confirmed interval
-
/bin/sleep ${TIME}
-
-
done
設定項目
TO=送信するメールアドレス宛先を記述する。
VALUE=この設定値を超えた場合、メールが送信される
TIME=確認を行う間隔を、秒で指定する。
以上
無限ループの中で2時間おきに実行するより
cronを利用して2時間おきに実行したほうが
良いと思います