Linux ディスク容量チェックのスクリプト
環境 CentOS6.5
先日突然サービスが止まってるといわれて調べたら、ディスクフル。
ディスク容量チェックは必須です。
#!/bin/sh limit=80 # percent # # Const # script=$(basename $0 .sh) host=$(hostname -s) lock=/tmp/$script.lock # # Mail # mail_cmd=/bin/mail from='hoge@mail.com' to='fuga@mail.com' subject="[$host] Disk Check Alert." # # Function # prepare () { output=$(mktemp /tmp/$script.XXXXXX) exec > $output 2>&1 } send_mail () { if [ -s $output ] ; then cat $output | $mail_cmd -s "$subject" $to -- -f $from fi } over_limit(){ df -Ph | awk 'FNR>=2{ sub("%", "", $5); if($5>limit){print $5} }' limit=$limit df -Pi | awk 'FNR>=2{ sub("%", "", $5); if($5>limit){print $5} }' limit=$limit } check() { if [ -n "$(over_limit)" ]; then df -h echo df -i fi } cleanup () { rm -f $output } # # Main # main () { prepare check send_mail cleanup } ( flock -n 200 [ $? -ne 0 ] && exit main ) 200> $lock