-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheck_disk.sh
71 lines (60 loc) · 1.49 KB
/
check_disk.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
help() {
cat << END
Usage :
check_disk.sh -p [Path] -w [VALUE] -c [VALUE]
OPTION DESCRIPTION
----------------------------------
-h Help
-w [VALUE] Warning Threshold
-c [VALUE] Critical Threshold
-p [Path] Mount Point Name
----------------------------------
Note : [VALUE] must be an integer.
END
}
if [ $# -ne 6 ]
then
help;
exit 3;
fi
while getopts "p:w:c:" OPT
do
case $OPT in
p) MNT="$OPTARG" ;;
w) WARN="$OPTARG" ;;
c) CRIT="$OPTARG" ;;
*) help ;;
esac
done
if [ $WARN -ge $CRIT ]
then
echo "ERROR : Warning threshold must be less than Critical threshold."
exit 3
fi
# NAGIOS DISPLAY DATA
DF=`df -lh $MNT | grep -iv "filesystem"`
TOTAL=`echo $DF | awk '{print $2}'`
USED=`echo $DF | awk '{print $3}'`
AVAIL=`echo $DF | awk '{print $4}'`
PER=`echo $DF | awk '{print $5}' | tr -d "%"`
OUTPUT=`echo $MNT : Total Space= "$TOTAL", Used Space= "$USED", Available Space= "$AVAIL" i.e. ${PER}% Usage`
if [ $PER -le $WARN ]
then
STATUS="OK";
EXITSTAT=0;
elif [ $PER -ge $WARN ]
then
if [ $PER -ge $CRIT ]
then
STATUS="CRITICAL";
EXITSTAT=2;
else
STATUS="WARNING";
EXITSTAT=1;
fi
else
STATUS="UNKNOWN";
EXITSTAT=3;
fi
echo "$STATUS- $OUTPUT | 'Usage'=${PER};$WARN;$CRIT;0;100" && exit $EXITSTAT