--- /dev/null
+# NagCollect -- Nagios Data Collector for Passive Checks
+# Copyright (c)2009 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
+ fs=`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/%//'`
+ fs=`echo $x | cut -d' ' -f6`
+ [ -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
+done < "$TEMP"
+
+if [ -n "$error" ]; then
+ STATUS=2
+ TEXT="Disk usage is CRITICAL: $TEXT"
+elif [ -n "$warning" ]; then
+ STATUS=1
+ TEXT="Disk usage is WARNING: $TEXT"
+else
+ STATUS=0
+ TEXT="Disk usage is OK: $TEXT"
+fi
+
+rm -f "$TEMP"