X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=nagcollect.git;a=blobdiff_plain;f=client%2Flib%2Ftests%2FDisks.tst;h=1ea83a1d3022c99ef71cde4349b299f3764d3b32;hp=d0816084fdf5ef7bfd0006d200e7c9da39d5a9fc;hb=e949266062778f8113eafd40db6db45014de32ad;hpb=9d40adf76c79dcfc43346d1b8241fb2193a6f981 diff --git a/client/lib/tests/Disks.tst b/client/lib/tests/Disks.tst index d081608..1ea83a1 100644 --- a/client/lib/tests/Disks.tst +++ b/client/lib/tests/Disks.tst @@ -1,25 +1,41 @@ # 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 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` + [ -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"