Форум программистов, компьютерный форум, киберфорум
hardwaremaster
Войти
Регистрация
Восстановить пароль
Карта форума Блоги Сообщество Поиск Заказать работу  
Рейтинг: 5.00. Голосов: 2.

Автоматический подъем сервера в случае падения Apache или MySQL | FreeBSD

Запись от hardwaremaster размещена 13.05.2014 в 22:37
Обновил(-а) hardwaremaster 13.05.2014 в 22:43

Решил создать запись для себя как блокнот, да и надеюсь еще кому будет полезно
Когда-то столкнулся с такой проблемой что сервер падал не часто но бывало, и лежал он часами... Но проблема была наконец-то устранена, но это не относится к этой теме. Так вот после этого решил поискать/написать скрипт который бы автоматически поднимал Apache и БД MySQL т.к. бывает все же от нагрузок они тоже падают. И вот собственно что получилось:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/sh
# APACHE SECTION
RESTART="/usr/local/etc/rc.d/apache24 restart"
PGREP="/usr/bin/pgrep"
HTTPD="httpd"
$PGREP ${HTTPD}
if [ $? -ne 0 ]; then
$RESTART
echo "Apache server has been successfully restarted." | mail -s "Apache24" your-mail #тут ваш email
fi
# MYSQL SECTION
RESTARTM="/usr/local/etc/rc.d/mysql-server restart"
MYSQLD="mysqld"
$PGREP ${MYSQLD}
if [ $? -ne 0 ]; then
$RESTARTM
echo "MySQL server has been successfully restarted." | mail -s "MySQL Server" your-mail #тут ваш email
fi
Собственно данный скрипт проверяет pid apache и mysql, если они не равны 0 то ничего не делать, но если какой-то из pid равен 0 то выполняется рестарт и затем на почту администратору отправляется сообщение что перезагрузка была выполнена успешно, ну это так сказать для того что бы можно было по времени отследить когда был произведен рестарт и заглянуть в голи что же все таки произошло.

собственно создаем файл к примеру monitoring.sh вставляем в него скрипт который я привел выше.

Делаем файл исполняемым командой chmod +x monitoring.sh

затем добавляем задачу в cron, что бы он автоматически дергал скрипт, для этого выполняем

crontab -e

и в редакторе фала вставляем строку вида

Bash
1
*/10 * * * * /bin/sh > /root/bin/monitoring.sh > /dev/null 2>&1
т.е. крон каждые 10 минут будет этот скрипт чекать и проверять ничего ли не лежит, что бы вновь поднять. Вам необходимо будет подправить путь к файлу /root/bin/monitoring.sh на свой где у вас хранится скрипт. Команда /dev/null 2>&1 отвечает за то что бы крон нам на почту каждые 10 минут не высылал pid процессов, они то нам не нужны, главное что они не равны 0

Вот собственно и все, надеюсь кому-то еще пригодится.
Размещено в FreeBSD/Linux
Показов 4205 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru