X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=nagcollect.git;a=blobdiff_plain;f=client%2Flib%2Ftests%2FDisks.tst;h=c353a3bae2f28d7b52c2776caad6596021739668;hp=0c0451cb2e5be1614b538b9ed1b593266592692b;hb=5e5e98448a519f2f6803ac2aa7e807ac4ed00628;hpb=be3abf344192576818a4e200bd937ab08e410d2b diff --git a/client/lib/tests/Disks.tst b/client/lib/tests/Disks.tst index 0c0451c..c353a3b 100644 --- a/client/lib/tests/Disks.tst +++ b/client/lib/tests/Disks.tst @@ -1,15 +1,42 @@ # NagCollect -- Nagios Data Collector for Passive Checks -# Copyright (c)2009 Alexander Barton, alex@barton.de - -if [ `uname` = "Darwin" ]; then - SERVICE="Disks_p" - error=`LC_ALL=C grep "I/O" /var/log/system.log | tail -n 1` - 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"