Автоматический рестарт mysql и apache при падении
Иногда из-за нестабильности работы MySQL по тем или иным причинам, работа сайта может подвергаться опасности. Это неприятно сказывается на посещаемости, индексации поисковыми система и доставляет неудобство посетителям. Постоянно отслеживать работу сервиса вручную — задача трудоемкая и даже невыполнимая. Если такое происходит с вашим сервером может помочь автоматическая проверка и рестарт MySQL и Apache.
Создадим файл dbmonitor.sh с таким содержимым:
#!/bin/bash # APACHE SECTION RESTART="/etc/init.d/apache2 restart" PGREP="/usr/bin/pgrep" HTTPD="apache" $PGREP ${HTTPD} if [ $? -ne 0 ]; then $RESTART fi # MYSQL SECTION RESTARTM="/etc/init.d/mysql restart" MYSQLD="mysqld" $PGREP ${MYSQLD} if [ $? -ne 0 ]; then $RESTART $RESTARTM fi
Скрипт проверяет работоспособность сервисов, и в случае их падения инициирует перезапуск.
Даем скрипту права на выполнение:
# chmod +x dbmonitor.sh
Теперь поставим скрипт на автоматическое выполнение в cron.
Для этого, в файле /etc/crontab
# nano /etc/crontab
в конец добавим строку:
*/1 * * * * /bin/sh /file_catalog/dbmonitor.sh
где file_catalog — каталог, в котором находится файл dbmonitor.sh
и сохраним файл.
Теперь каждую минуту на сервере будет запускаться скрипт, проверять работу сервисов, и автоматически их перезапускать при необходимости.
Конечно, решение не самое лучшее, и при любых неполадках лучше разобраться в их причине и наладить бесперебойную работу. Но во многих случаях такой подход может оказаться очень полезным.
Поделиться "Автоматический рестарт mysql и apache при падении"