# NagCollect -- Nagios Data Collector for Passive Checks
-# Copyright (c)2009 Alexander Barton, alex@barton.de
+# Copyright (c)2009-2011 Alexander Barton, alex@barton.de
-# Check free space on local filesystems
+# Check free space on local r/w filesystems
SERVICE="DiskUsage_p"
STATUS=4
df -l -P -m | grep "^/" >"$TEMP"
while read x; do
- fs=`echo $x | cut -d' ' -f1`
- blocks=`echo $x | cut -d' ' -f2`
- used=`echo $x | cut -d' ' -f3`
+ #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 (${capacity}%);"
- if [ "$capacity" -gt 95 ]; then
- error=1
- elif [ "$capacity" -gt 90 ]; then
- warning=1
- fi
+ 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: $TEXT"
+ TEXT="Disk usage is CRITICAL, free space: $TEXT"
elif [ -n "$warning" ]; then
STATUS=1
- TEXT="Disk usage is WARNING: $TEXT"
+ TEXT="Disk usage is WARNING, free space: $TEXT"
else
STATUS=0
- TEXT="Disk usage is OK: $TEXT"
+ TEXT="Disk usage is OK, free space: $TEXT"
fi
rm -f "$TEMP"