]> arthur.barton.de Git - nagcollect.git/blob - client/lib/tests/Disks.tst
New "Disks" test that checks the free space of filesystems
[nagcollect.git] / client / lib / tests / Disks.tst
1 # NagCollect -- Nagios Data Collector for Passive Checks
2 # Copyright (c)2009 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         fs=`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         fs=`echo $x | cut -d' ' -f6`
23         [ -n "$TEXT" ] && TEXT="$TEXT "
24         TEXT="${TEXT}${fs} ${free} MB (${capacity}%);"
25         if [ "$capacity" -gt 95 ]; then
26                 error=1
27         elif [ "$capacity" -gt 90 ]; then
28                 warning=1
29         fi
30 done < "$TEMP"
31
32 if [ -n "$error" ]; then
33         STATUS=2
34         TEXT="Disk usage is CRITICAL: $TEXT"
35 elif [ -n "$warning" ]; then
36         STATUS=1
37         TEXT="Disk usage is WARNING: $TEXT"
38 else
39         STATUS=0
40         TEXT="Disk usage is OK: $TEXT"
41 fi
42
43 rm -f "$TEMP"