Назад | Перейти на главную страницу

bash скрипт для проверки шлюза zabbix java

Я написал простой скрипт для проверки статуса службы, и когда служба не работает, ищите текущие процессы для службы и убивайте их, затем удаляйте файл pid и перезапускайте службу.

Проблема в том, что сценарий не всегда может удалить файл pid, в результате чего сценарий не может перезапустить службу.

Это сценарий:

#!/bin/bash
SHELL=/bin/bash
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
echo $(date +%d/%m/%Y-%H:%M)
service zabbix-java-gateway restart
sleep 1
service zabbix-java-gateway status > /tmp/status_zabbix_java_gateway
if grep  "is running..." /tmp/status_zabbix_java_gateway
then
    echo "zabbix-java-gateway is runnign on $HOSTNAME"
    echo " "
rm -rf /tmp/status_zabbix_java_gateway
else
echo "zabbix-java-gateway is stopped on $HOSTNAME"
echo " "
output=`ps aux|grep zabbix_java`
set -- $output
pid=$2
kill $pid
sleep 2
kill -9 $pid >/dev/null 2>&1
sleep 2
rm -rf /var/run/zabbix/zabbix_java.pid
echo "zabbix-java-gateway is stopped on $HOSTNAME!!!" > /tmp/mail_zabbix_java_gateway
mail -s "Zabbix Java Gateway is down on !!!" somemail@hotmail.com < /tmp/mail_zabbix_java_gateway
/etc/init.d/zabbix-java-gateway restart
rm -rf /tmp/mail_zabbix_java_gateway
rm -rf /tmp/status_zabbix_java_gateway
fi

Пожалуйста, дайте мне совет.

Во-первых, вам, вероятно, следует просто использовать скрипт startup.sh, поставляемый с Zabbix. Во-вторых, зачем вообще нужен такой чек? Если шлюз не работает должным образом, следует решить основную проблему.