Build precise queries to find exactly what you need
Press ESC to close
@jlevy
Favorites0
Views
Projects0
#!/bin/bash # Versao 1.2 # Criador: Aline Carvalho # Criacao: 14/10/2009 # LastCHanges: 10/08/2018 # By Jeremy Levy # |_ English Tradution. Corrige no exact name # # Objective: Verify that virtual server is online or offline ## Variables VIRSH=`which virsh` function check_srv { HOST=$1 # Check if sudo command is installed which sudo > /dev/null 2>&1 if [ $? -ne 0 ] then echo "ERRO: sudo not installing" exit 3 fi #sudo $VIRSH list | grep $HOST > /dev/null RESULT=`sudo $VIRSH list | grep $HOST | cut -d" " -f7` for FOO in $RESULT do #if [ $? != "0" ] if [ "$FOO" != "$HOST" ] then echo "CRITICAL: Virtual Machine $HOST is down, or not exist!!!" exit 2 else STATE=`sudo $VIRSH list | grep $HOST | awk '{ print $3 }'` if [ $STATE == "paused" ] then echo "WARNING: $HOST is in paused states." exit 1 elif [ $STATE == "blocked" ] then echo "WARNING: $HOST is in blocked states." exit 1 elif [ $STATE == "shutdown" ] then echo "WARNING: $HOST is in shutdown states." exit 1 elif [ $STATE == "crashed" ] then echo "WARNING: $HOST is in crashed states." exit 1 elif [ $STATE == "dying" ] then echo "WARNING: $HOST is in dying states." exit 1 else echo "OK: Virtual Machine $HOST is UP" exit 0 fi fi done } function print_usage { echo "" echo "" echo " Usage: $0 srv HOST " echo "" echo " Important: " echo " First of all you need to configure sudo in /etc/sudores:" echo " nagios ALL=(ALL) NOPASSWD:/usr/bin/virsh list" echo " and comment the line # Defaults requiretty" echo "" } ## Checks if the user has typed the command with the correct parameters case $1 in srv) HOST=$2 if [ -z $2 ] then echo "" echo "You need to specify the virtual machine" echo " ex: $0 $1 HOST" echo "" exit 3 fi check_srv $HOST ;; *) print_usage ;; esac
Reviewed 7 years ago