Logoj0ke.net Open Build Service > Projects > internetx > nagios-plugins-virtuozzo > check_virtuozzo_vm
Sign Up | Log In

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