Приведу пример простого скрипта для перезапуска сервисов если они не запущены и отправки уведомления на email:
#!/bin/bash SERVICES="ssh apache2 zabbix-server zabbix-agent mysql smbd nmbd asterisk" DATE=$(date '+%d-%m-%Y %H:%M:%S') for SERVICE in ${SERVICES} do service $SERVICE status 2>&1>/dev/null if [ $? -ne 0 ]; then service $SERVICE restart echo -e "Starting $SERVICE" (echo "Subject:Restarting $SERVICE"; echo "$DATE $SERVICE is not running on $HOSTNAME! Restarting!";) | sendmail test@ixnfo.com else echo -e "$SERVICE OK" fi done
В скрипте укажем email на который хотите получать уведомления, а в «SERVICES» список сервисов через пробел, которые необходимо проверять.
Чтобы скрипт автоматически выполнялся например каждые 10 минут, добавим строку в /etc/crontab:
*/10 * * * * root /dir/watchdog.sh > /dev/null 2>&1
Смотрите также мои статьи:
Установка и настройка Postfix
Использование и настройка CRON
Установка и настройка Monit