Код: Выделить всё
#!/usr/bin/env bash
# функция вызова проверки и перезапуска служб сервера
check_srv()
{
s1=$1
/usr/bin/pgrep $s1 &>/dev/null
s2=$?
if [ $s2 -ne 0 ]; then
if [ X"$s1" == X"mysqld" ]; then
s1='mysql'
fi
service $s1 restart &>/dev/null
echo "---------------------------------------------------------------" >> /root/service_up.log
echo "Служба $s1 был перезапущена в `date`" >> /root/service_up.log
echo -e "---------------------------------------------------------------\n" >> /root/service_up.log
fi
};
# "Проверяем apache2"
check_srv apache2
# "Проверяем MySQL"
check_srv mysqld
Код: Выделить всё
-------------------------------------------------------
Служба apache2 был перезапущена в Вск Мар 16 22:16:44 YEKT 2014
-------------------------------------------------------
-------------------------------------------------------
Служба mysql был перезапущена в Вск Мар 16 22:16:47 YEKT 2014
-------------------------------------------------------
Код: Выделить всё
# chmod +x test_service.sh
Для этого, в файле /etc/crontab
Код: Выделить всё
# crontab -e
Код: Выделить всё
*/5 * * * * /file_catalog/test_service.sh
и сохраним файл.
Теперь каждые 5 минут на сервере будет запускаться скрипт, проверять работу сервисов, и автоматически их перезапускать при необходимости.