Автоматический рестарт mysql и apache при падении

Автоматическая перезагрузка MySQL
Linux
8

Иногда из-за нестабильности работы 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
и сохраним файл.

Теперь каждую минуту на сервере будет запускаться скрипт, проверять работу сервисов, и автоматически их перезапускать при необходимости.

Конечно, решение не самое лучшее, и при любых неполадках лучше разобраться в их причине и наладить бесперебойную работу. Но во многих случаях такой подход может оказаться очень полезным.

  • 0x0718

    Мне кажется скрипт не работает. Mysqld так же безупречно упал =). С 14ой строчкой всё нормально? Что значит «$?» и почему условия в квадратных скобках.
    P.S. Сишник =)

  • admin

    0x0718, у меня все нормально, пользуюсь скриптом на нескольких машинах.
    На паданье он не влияет — падает все, как и прежде, тут нужны другие инструменты. Но при падении, если скрипт запущен в крон на достаточно частый запуск, он отрабатывает, и сервисы благополучно поднимаются.

  • rewired

    А как ему запретить слать почту на /var/mail/root ?

    • ablex

      Добрый день, rewired! Интересный вопрос. Не могу ответить. А с чем связана такая необходимость?

      • ButCheR

        В crontab в конце строки допиши >/dev/null 2>&1

  • Pingback: Переходим на российский хостинг (TimeWeb) | Интернет |PRO IT()

  • Павел

    Привет друг! Сделал как ты показал, автозапуск прописал через nano /etc/crontab, но почему то скрипт не запускался автоматически. Прописал через crontab -e и скрипт запускается теперь.

    • ablex

      Спасибо за комментарий, Павел.
      Рад, что у вас все получилось! Возможно, многим поможет.

Bitnami Redmine
Linux
Bitnami Redmine — быстро разворачиваем Redmine на любой машине

Я написал множество статей по тему установки, решения проблем и настройки таск-менеджера Redmine на различных устройствах. И, что не говори, сам процесс установки приложения, с учетом современных стандартов довольно сложен. Недавно, мне предстояло в очередной раз его повторить. И тут я открыл для себя потрясающе простое решение: пакет Bitnami Redmine. Поделиться …

Настройка отправки почты Redmine через exim4 (sendmail)
Linux
Отправка почты Redmine через exim4 (Sendmail)

Прошло 2-3 года с моих последних статей по настройке почты в Redmine. И долгое время мой надежный друг и помощник работал без перебоев. Но в какой-то момент, опять стали возникать проблемы с отправкой почты. А без таких уведомлений, заметно падает результативность работы сотрудников отдела. Не говоря уже о том, сколько эмоциональных …

Настройка VPN сервера
Linux
2
Настройка VPN сервера и клиентского компьютера

Чтобы разобраться с настройкой VPN, необходимо понимать, что же это такое. VPN (Virtual Private Network) – это виртуальная частная сеть. В неё входит группа протоколов, с помощью которых можно организовать визуальную сеть поверх незащищенной сети. Её используют для того, чтобы получить доступ в интернет, доступ в корпоративную сеть и объединение …

Top