Disks.tst: Only check read-write volumes
[nagcollect.git] / client / lib / tests / Disks.tst
1 # NagCollect -- Nagios Data Collector for Passive Checks
2 # Copyright (c)2009-2011 Alexander Barton, alex@barton.de
3
4 # Check free space on local r/w filesystems
5
6 SERVICE="DiskUsage_p"
7 STATUS=4
8
9 error=
10 warning=
11
12 TEMP="/tmp/$$.tmp"
13
14 df -l -P -m | grep "^/" >"$TEMP"
15
16 while read x; do
17         #dev=`echo $x | cut -d' ' -f1`
18         #blocks=`echo $x | cut -d' ' -f2`
19         #used=`echo $x | cut -d' ' -f3`
20         free=`echo $x | cut -d' ' -f4`
21         capacity=`echo $x | cut -d' ' -f5 | sed 's/%//'`
22         declare -i capacity2=100-$capacity
23         fs=`echo $x | cut -d' ' -f6`
24         [ -w "$fs" ] || continue
25         [ -n "$TEXT" ] && TEXT="$TEXT "
26         TEXT="${TEXT}${fs} ${free} MB (${capacity2}%);"
27         [ "$free" -lt 2000 -a $capacity2 -lt 5 ] && error=1
28         [ "$free" -lt 5000 -a $capacity2 -lt 10 ] && warning=1
29 done < "$TEMP"
30
31 if [ -n "$error" ]; then
32         STATUS=2
33         TEXT="Disk usage is CRITICAL, free space: $TEXT"
34 elif [ -n "$warning" ]; then
35         STATUS=1
36         TEXT="Disk usage is WARNING, free space: $TEXT"
37 else
38         STATUS=0
39         TEXT="Disk usage is OK, free space: $TEXT"
40 fi
41
42 rm -f "$TEMP"