1ea83a1d3022c99ef71cde4349b299f3764d3b32
[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 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         [ -n "$TEXT" ] && TEXT="$TEXT "
25         TEXT="${TEXT}${fs} ${free} MB (${capacity2}%);"
26         [ "$free" -lt 2000 -a $capacity2 -lt 5 ] && error=1
27         [ "$free" -lt 5000 -a $capacity2 -lt 10 ] && warning=1
28 done < "$TEMP"
29
30 if [ -n "$error" ]; then
31         STATUS=2
32         TEXT="Disk usage is CRITICAL, free space: $TEXT"
33 elif [ -n "$warning" ]; then
34         STATUS=1
35         TEXT="Disk usage is WARNING, free space: $TEXT"
36 else
37         STATUS=0
38         TEXT="Disk usage is OK, free space: $TEXT"
39 fi
40
41 rm -f "$TEMP"