Simple Watchdog script

I will give an example of a simple script for restarting services if they are not running and sending a notification by 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

In the script, specify the email on which you want to receive notifications, and in the “SERVICES” list of services through the space that you want to check.

To make the script automatically run for example every 10 minutes, add a line to /etc/crontab:

*/10 * * * * root /dir/watchdog.sh > /dev/null 2>&1

See also my articles:
Installing and Configuring Postfix
Using and configuring CRON

Did my article help you? How about buying me a cup of coffee as an encouragement? Buy me a coffe.

Leave a comment

Leave a Reply