X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=client%2Flib%2Ftests%2FDisks.tst;h=c353a3bae2f28d7b52c2776caad6596021739668;hb=1499adc7734f7668ffed54eab539a172d81ca789;hp=d0816084fdf5ef7bfd0006d200e7c9da39d5a9fc;hpb=9d40adf76c79dcfc43346d1b8241fb2193a6f981;p=nagcollect.git diff --git a/client/lib/tests/Disks.tst b/client/lib/tests/Disks.tst index d081608..c353a3b 100644 --- a/client/lib/tests/Disks.tst +++ b/client/lib/tests/Disks.tst @@ -1,25 +1,42 @@ # NagCollect -- Nagios Data Collector for Passive Checks -# Copyright (c)2009 Alexander Barton, alex@barton.de - -if [ `uname` = "Darwin" ]; then - SERVICE="Disks_p" - offset=`LC_ALL=C grep -b "BOOT_TIME:" /var/log/system.log \ - | tail -n 1 | cut -d':' -f1` - if [ -n "$offset" ]; then - # reboot detected in system.log - error=`LC_ALL=C tail -c "+$offset" /var/log/system.log \ - | grep "I/O" | grep -v nagcollect | tail -n 1` - else - # no reboot detected in system.log - error=`LC_ALL=C grep "I/O" /var/log/system.log \ - | grep -v nagcollect | tail -n 1` - fi - if [ -n "$error" ]; then - msg=`echo $error | cut -d' ' -f6-` - STATUS=2 - TEXT="ERROR - $msg" - else - STATUS=0 - TEXT="OK - No I/O errors detected." - fi +# Copyright (c)2009-2011 Alexander Barton, alex@barton.de + +# Check free space on local r/w filesystems + +SERVICE="DiskUsage_p" +STATUS=4 + +error= +warning= + +TEMP="/tmp/$$.tmp" + +df -l -P -m | grep "^/" >"$TEMP" + +while read x; do + #dev=`echo $x | cut -d' ' -f1` + #blocks=`echo $x | cut -d' ' -f2` + #used=`echo $x | cut -d' ' -f3` + free=`echo $x | cut -d' ' -f4` + capacity=`echo $x | cut -d' ' -f5 | sed 's/%//'` + declare -i capacity2=100-$capacity + fs=`echo $x | cut -d' ' -f6` + [ -w "$fs" ] || continue + [ -n "$TEXT" ] && TEXT="$TEXT " + TEXT="${TEXT}${fs} ${free} MB (${capacity2}%);" + [ "$free" -lt 2000 -a $capacity2 -lt 5 ] && error=1 + [ "$free" -lt 5000 -a $capacity2 -lt 10 ] && warning=1 +done < "$TEMP" + +if [ -n "$error" ]; then + STATUS=2 + TEXT="Disk usage is CRITICAL, free space: $TEXT" +elif [ -n "$warning" ]; then + STATUS=1 + TEXT="Disk usage is WARNING, free space: $TEXT" +else + STATUS=0 + TEXT="Disk usage is OK, free space: $TEXT" fi + +rm -f "$TEMP"