File check_virtuozzo_vm of Package nagios-plugins-virtuozzo
1
#!/bin/bash
2
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
3
#set -x
4
5
# process excludes
6
EXCLUDEFILE=/etc/vzlist.exclude
7
if [ -f ${EXCLUDEFILE} ] ; then
8
EXCLUDE=" | grep -v -i -E '("
9
RUN=0
10
for LINE in `cat ${EXCLUDEFILE} | grep -v -E '(^$|^#)'` ; do
11
RUN=1
12
EXCLUDE="${EXCLUDE}${LINE}|"
13
done
14
if [ "${RUN}" == "1" ] ; then
15
EXCLUDE=`echo ${EXCLUDE} | sed -e s@"|$"@")'"@`
16
else
17
EXCLUDE=""
18
fi
19
else
20
EXCLUDE=""
21
fi
22
23
# real environment
24
VZLIST=`/usr/sbin/vzlist -a -H ${EXCLUDE} | awk '{print $1";"$2";"$3";"$4";"$5 }'`
25
if [ $? -ne 0 ] ; then
26
echo "vzlist error"
27
exit 2
28
fi
29
# development environment
30
#VZLIST=`cat vzlist | awk '{print $1";"$2";"$3";"$4";"$5 }'`
31
32
OUTPUT="All VMs OK"
33
EXITCODE=0
34
VZCNT=0
35
for LINE in ${VZLIST} ; do
36
37
CTID=`echo ${LINE} | awk -F\; '{print $1}'`
38
NPROC=`echo ${LINE} | awk -F\; '{print $2}'`
39
STATUS=`echo ${LINE} | awk -F\; '{print $3}'`
40
IP_ADDR=`echo ${LINE} | awk -F\; '{print $4}'`
41
HOST_NAME=`echo ${LINE} | awk -F\; '{print $5}'`
42
43
if [ "${STATUS}" != "running" ] ; then
44
if [ ${VZCNT} -eq 0 ] ; then
45
OUTPUT="Problems found: ${CTID} => ${HOST_NAME}/${IP_ADDR} => ${STATUS}"
46
else
47
OUTPUT="$OUTPUT , ${CTID} => ${HOST_NAME}/${IP_ADDR} => ${STATUS}"
48
fi
49
VZCNT=`/usr/bin/expr ${VZCNT} + 1`
50
if [ "${STATUS}" == "stopped" ] ; then
51
if [ ${EXITCODE} -le 1 ] ;then
52
EXITCODE=1
53
fi
54
elif [ "${STATUS}" == "mounted" ] ; then
55
EXITCODE=2
56
else
57
EXITCODE=3
58
fi
59
else
60
:
61
fi
62
63
done 2>&1
64
65
echo ${OUTPUT}
66
exit ${EXITCODE}
67
68