-
Notifications
You must be signed in to change notification settings - Fork 0
/
mtr.sh
executable file
·64 lines (57 loc) · 1.38 KB
/
mtr.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
#!/bin/bash
usage()
{
cat << EOF
usage: $0 options
This script run a mtr to a specific host
OPTIONS:
-H Host Address to test connectivity
-N Host name
-S Host State
-T Host State Type
-A Host Attempts
-m E-mail adress to send report
-h Show Help
EOF
}
while getopts “hH:N:S:T:A:m:” OPTION
do
case $OPTION in
h)
usage
exit 1
;;
H)
HOST_ADDRESS=$OPTARG
# echo "HOST_ADDRESS = $HOST_ADDRESS" | logger
;;
N)
HOST_NAME=$OPTARG
# echo "HOST_NAME = $HOST_NAME" | logger
;;
S)
HOST_STATE=$OPTARG
;;
T)
HOST_STATE_TYPE=$OPTARG
;;
A)
HOST_ATTEMPTS=$OPTARG
;;
m)
MAIL_ADDRESS=$OPTARG
# echo "MAIL_ADDRESS = $MAIL_ADDRESS" | logger
;;
?)
usage
exit
;;
esac
done
# DEBUG echo "mtr -r -n $HOST_ADDRESS | mail -s \"[Nagios report] MTR to $HOST_NAME\" $MAIL_ADDRESS" | logger
if [[ "$HOST_STATE" = DOWN && "$HOST_STATE_TYPE" = SOFT && "$HOST_ATTEMPTS" = 1 ]]
then
mtr -r -n $HOST_ADDRESS | mail -s "[Nagios report] MTR to $HOST_NAME" $MAIL_ADDRESS
else
echo "No match of condition : HOST_STATE = $HOST_STATE ; HOST_STATE_TYPE = $HOST_STATE_TYPE ; HOST_ATTEMPTS = $HOST_ATTEMPTS" | logger
fi