WatchDog watchdog.sh script for checking server running
Article Number: 344 | Rating: Unrated | Last Updated: Tue, Jul 31, 2018 9:37 AM
| # Service watchdog script |
| # Put in crontab to automatially restart services (and optionally email you) if they die for some reason. |
| # Note: You need to run this as root otherwise you won't be able to restart services. |
| # Strict check for apache2 service every 5 minutes, pipe results to /dev/null |
| # */5 * * * * sh /root/watchdog.sh apache2 "" > /dev/null |
| # "Loose" check for mysqld every 5 minutes, second parameter is the name of the service |
| # to restart, in case the application and service names differ. Also emails a report to admin@domain.com |
| # */5 * * * * sh /root/watchdog.sh mysqld mysql admin@domain.com > /dev/null |
| # apache2 - Debian/Ubuntu |
| # httpd - RHEL/CentOS/Fedora |
| # mysqld - RHEL/CentOS/Fedora |
| DATE=`date +%Y-%m-%d--%H-%M-%S` |
| EXTRA_PGREP_PARAMS="-x" #Extra parameters to pgrep, for example -x is good to do exact matching |
| MAIL_TO="$3" #Email to send restart notifications to |
| #path to pgrep command, for example /usr/bin/pgrep |
| #Check if we have have a second param |
| if [ -z $SERVICE_RESTARTNAME ] |
| RESTART="/sbin/service ${SERVICE_NAME} restart" #No second param |
| RESTART="/sbin/service ${SERVICE_RESTARTNAME} restart" #Second param |
| pids=`$PGREP ${EXTRA_PGREP_PARAMS} ${SERVICE_NAME}` |
| #if we get no pids, service is not running |
| echo "$DATE : ${SERVICE_NAME} restarted - no email report configured." |
| echo "$DATE : Performing restart of ${SERVICE_NAME}" | mail -s "Service failure: ${SERVICE_NAME}" ${MAIL_TO} |
| echo "$DATE : Service ${SERVICE_NAME} is still working!" |
| # copylefted from https://gist.github.com/vodolaz095/5073080 |
| /bin/bash /root/watchdog.sh mysqld mysqld "$mailto" |
| /bin/bash /root/watchdog.sh httpd httpd "$mailto" |
| /bin/bash /root/watchdog.sh pound pound "$mailto" |
| /bin/bash /root/watchdog.sh redis-server redis "$mailto" |
| /bin/bash /root/watchdog.sh memcached memcached "$mailto" |
/bin/bash /root/watchdog.sh searchd searchd "$mailto"
Posted - Tue, Jul 31, 2018 9:37 AM. This article has been viewed 6192 times.
Filed Under:
Linux
There are no attachments for this article.
There are no comments for this article. Be the first to post a comment.
Related Articles

Understanding System auditing with auditd
Viewed 11779 times since Fri, Apr 5, 2019
How To Add Swap Space on Ubuntu 16.04
Viewed 3143 times since Fri, Jun 8, 2018
Linux RedHat How To Create An RPM Package
Viewed 4128 times since Sun, Jan 9, 2022
Linux - How to get CPU information
Viewed 2850 times since Fri, Jun 8, 2018
RHEL: Display swap/RAM size
Viewed 4178 times since Sat, Jun 2, 2018