The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Помогите написать скрипт! "
Отправлено михалыч, 20-Окт-11 21:23 
> скрипт который я пока не знаю он был бы идеален --проверка
> dns гугла - если нет то перезагрузка mpd4 -- если нет
> то уже перезагрузка сервака:)))

Да.. давненько не брал я в руки шашек.. гы-ы-ы-ы!
Ох и намучу сейчас что-то страшное!


#!/bin/sh

# СКРИПТ ПРОВЕРКИ РАБОТЫ И АКТИВНОСТИ ИНТЕРНЕТ СОЕДИНЕНИЯ

# ОПРЕДЕЛЯЕМ ПЕРЕМЕННЫЕ, ПУТИ ДО ЛОГ-ФАЙЛОВ И ИСПОЛНЯЕМЫХ СКРИПТОВ

# ПУТЬ ДО ЛОГ-ФАЙЛА
LOG="/var/log/check_inet.log"

# ОПРЕДЕЛЯЕМ СЕРВЕР ДЛЯ ПРОВЕРКИ ДОСТУПНОСТИ ИНТЕРНЕТА
SERVER="8.8.8.8"

# ОПРЕДЕЛЯЕМ ПУТЬ ДО ИСПОЛНЯЕМОГО ФАЙЛА ПРОГРАММЫ PING
PING="/sbin/ping"

# ОПРЕДЕЛЯЕМ ПУТЬ ДО ИСПОЛНЯЕМОГО ФАЙЛА ПРОГРАММЫ REBOOT
REBOOT="/sbin/reboot"

# ОПРЕДЕЛЯЕМ ПУТЬ ДО СКРИПТА РЕСТАРТА MPD
MPD_RESTART="/usr/local/etc/rc.d/mpd4"


# ОПИСЫВАЕМ ФУНКЦИИ

# РЕСТАРТ MPD
mpd_restart() {
if [ -x ${MPD_RESTART} ]; then
        echo "$(date +%d-%m-%y\ %H:%M:%S) РЕСТАРТ MPD НАЧАТ" >> ${LOG}
else
        echo "$(date +%d-%m-%y\ %H:%M:%S) ОШИБКА! СКРИПТ РЕСТАРТА MPD НЕ НАЙДЕН! --> ВЫХОД" >> ${LOG}
        exit 2
fi

${MPD_RESTART} restart >/dev/null 2>/dev/null

        echo "$(date +%d-%m-%y\ %H:%M:%S) РЕСТАРТ MPD УСПЕШНО ОКОНЧЕН" >> ${LOG}
        restart

return 0
}


# ПРОВЕРКА СЕРВЕРА НА ДОСТУПНОСТЬ ЧЕРЕЗ PING
ping_server() {
${PING} -q -c1 -t1 -s0 ${SERVER} >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
        echo "$(date +%d-%m-%y\ %H:%M:%S) ТЕСТ PING ${SERVER} УСПЕШНО ВЫПОЛНЕН!" >> ${LOG}
        exit 0
else
        echo "$(date +%d-%m-%y\ %H:%M:%S) ОШИБКА! ТЕСТ PING ${SERVER} НЕУДАЧНО! --> РЕСТАРТ MPD" >> ${LOG}
        mpd_restart
fi

return 0
}


# ПРОВЕРКА ИНТЕРНЕТА ПОСЛЕ РЕСТАРТА MPD
restart() {
${PING} -q -c1 -t1 -s0 ${SERVER} >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
        echo "$(date +%d-%m-%y\ %H:%M:%S) ТЕСТ PING ${SERVER} ПОСЛЕ РЕСТАРТА MPD УСПЕШНО ВЫПОЛНЕН!" >> ${LOG}
        exit 0
else
        echo "$(date +%d-%m-%y\ %H:%M:%S) КРИТИЧЕСКАЯ ОШИБКА!! ДВА ТЕСТА НЕУДАЧНО!! --> REBOOT НАШЕГО СЕРВЕРА" >> ${LOG}
        ${REBOOT}
fi

return 0
}


# СТАРТ - ОБЩЕЕ НАЧАЛО РАБОТЫ СКРИПТА
echo "=============================================================" >> ${LOG}
echo "$(date +%d-%m-%y\ %H:%M:%S) СТАРТ ПРОВЕРКИ ДОСТУПНОСТИ ИНТЕРНЕТА" >> ${LOG}
ping_server

exit 0


Кидаем скрипт куда-нибудь. Обзываем его, ну скажем, check_inet.sh
Делаем его исполняемым и вызываем по крону как нам надо, хоть каждые 5 минут.
В кроне пути указываем полные.
 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру