サーバのディスク容量を定期的に確認

サーバのディスク容量を定期的に確認するシェルスクリプト。
使用パーセンテージが設定値を超えた場合、メールを送信する。
設定間隔ごとに確認を行い、バックグランドで常に動作している。

capacity_check.sh

/root/script/check/capacity_check.sh として設置する。
実行権限を与える。

CODE:
  1. #!/bin/bash
  2.  
  3. #-------------------------------------------------
  4. # Confirmation script of the remainder capacity.
  5. #
  6. # Run:
  7. # /usr/bin/nohup /root/script/check/capacity_check.sh > /root/script/check/capacity_check.out 2> /root/script/check/capacity_check.err </dev/null &
  8. #
  9. # crontab:
  10. # @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 &
  11. #-------------------------------------------------
  12.  
  13. TO=na-ga.mobile@xxxxxx.naga
  14. VALUE=80
  15. TIME=3600
  16. HOST=`hostname`
  17. ERROR=0
  18.  
  19. while true
  20. do
  21.  
  22.   # Use percentage of capacity
  23.   USE_PERCENTAGE=`df / | tail -1 | sed 's/^.* \([0-9]*\)%.*$/\1/'`
  24.  
  25.   # When the use percentage of capacity exceeds a set value
  26.   if [ $USE_PERCENTAGE -ge $VALUE ]; then
  27.  
  28.     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}
  29.     ERROR=1
  30.  
  31.   # When status changes from NG into OK
  32.   elif [ $ERROR = 1 ]; then 
  33.  
  34.     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}
  35.     ERROR=0
  36.  
  37.   fi
  38.  
  39.   # Confirmed interval
  40.   /bin/sleep ${TIME}
  41.  
  42. done

設定項目

TO=送信するメールアドレス宛先を記述する。
VALUE=この設定値を超えた場合、メールが送信される
TIME=確認を行う間隔を、秒で指定する。

以上

  1. 通りすがり より:

    無限ループの中で2時間おきに実行するより
    cronを利用して2時間おきに実行したほうが
    良いと思います

  1. There are no trackbacks for this post yet.

Leave a Reply