# NagCollect -- Nagios Data Collector for Passive Checks # 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"