Нужен скрипт проверки ping шлюза провайдера.
Если ping нет то /usr/local/etc/rc.d/mpd4 restartНашел 2 скрипта. Но не работают.
#!/bin/sh
# ping хоста
png=`ping -c 1 -i 1 PING_HOST | grep % | awk '{ print $7 };'`case $png
in
100%)
/usr/local/etc/rc.d/mpd4 restart
fi
break
;;
esac
#!/bin/bash
ping -n -q -c 1 -t 1 8.8.8.8 > /dev/null 2>&1
if [ $? -eq 0 ] ; then
exit
else
reboot
fi
#!/bin/bash
ping -n -q -c 1 -t 1 8.8.8.8 || reboot
Он не написал, что не работает. Возможно, что ping намертво застревает скажем, в send, из-за какого-то глюка железа.А может быть у него ping не установлен или он пытается reboot сделать юзером.
Подожди, пока он вышлет той травы, которую курил, когда спрашивал. Мы её покурим и ответим...
Спасибо за ответы! Суть такова. PPPoE поднял через mpd4. Тунель подвисает и каждый раз нужно перегружать mpd4 вручную либо глюки с adsl модемот то и его и сервак. Поэтому хотел запихнуть скрипт в crontab чтоб он проверял наличие интернета и перегружал mpd4.
Пока в данный момент поместил в crontab :
@hourly root /etc/netstart && /usr/local/etc/rc.d/mpd4 restart
В начале каждого часа рестарт netsart и mpd4 . Помогает :)))
Нашел еще: в crontab внести надо:
*/10 * * * * /sbin/ping -c 4 ya.ru || /usr/local/etc/rc.d/mpd4 restart 2>&1 >> /dev/null
Вот сегодня попробую.По поводу скрипта подскажите а то ниразу не делал. Создаю файл script - содержимое:
#!/bin/bash
ping -n -q -c 1 -t 1 8.8.8.8 || rebootИ прописывай в crontab 00 20 * * * /home/script
И как принудительно егозапустить??? :)
> глюки с adsl модемот то и его и сервак.Pard my French, but йоп твайу мать. Подожди, пока пройдут глюки и попробуй выражаться более определённо по поводу модемота.
Если перегрузить модем то тунель заного не поднимаеться даже ручным способом - приходиться сервер перегружать.
> Если перегрузить модем то тунель заного не поднимаеться даже ручным способом -
> приходиться сервер перегружать.Хорошо. Что получается, если в момент зависа канала выполнить
ping -n -q -c 1 -t 1 8.8.8.8 || echo reboot
>> Если перегрузить модем то тунель заного не поднимаеться даже ручным способом -
>> приходиться сервер перегружать.
> Хорошо. Что получается, если в момент зависа канала выполнить
>
> ping -n -q -c 1 -t 1 8.8.8.8 || echo reboot
>Пока не знаю сегодня попробую!
unix# ping -n -q -c 1 -t 1 77.51.199.250 || echo reboot
PING 77.51.199.250 (77.51.199.250): 56 data bytes--- 77.51.199.250 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
rebootВзял Ip не рабочий....Сервак не перегружаеться
>> Если перегрузить модем то тунель заного не поднимаеться даже ручным способом -
>> приходиться сервер перегружать.
> Хорошо. Что получается, если в момент зависа канала выполнить
>
> ping -n -q -c 1 -t 1 8.8.8.8 || echo reboot
>
>[оверквотинг удален]
> --- 77.51.199.250 ping statistics ---
> 1 packets transmitted, 0 packets received, 100.0% packet loss
> reboot
> Взял Ip не рабочий....Сервак не перегружаеться
>>> Если перегрузить модем то тунель заного не поднимаеться даже ручным способом -
>>> приходиться сервер перегружать.
>> Хорошо. Что получается, если в момент зависа канала выполнить
>>
>> ping -n -q -c 1 -t 1 8.8.8.8 || echo reboot
>>Э-э-э..! Аллё, гараж!
Это как так "Сервак не перегружаеться" ??
Типа тонкий аглицкий юмор, да ?
Он же тебе английскими буквами по русски написал: "reboot"
Ты эхо-то убери и протести еще раз.
ping -q -c 1 -t 1 8.8.8.8 || reboot
>[оверквотинг удален]
>>> Хорошо. Что получается, если в момент зависа канала выполнить
>>>
>>> ping -n -q -c 1 -t 1 8.8.8.8 || echo reboot
>>>
> Э-э-э..! Аллё, гараж!
> Это как так "Сервак не перегружаеться" ??
> Типа тонкий аглицкий юмор, да ?
> Он же тебе английскими буквами по русски написал: "reboot"
> Ты эхо-то убери и протести еще раз.
> ping -n -q -c 1 -t 1 8.8.8.8 || rebootтебе скрин прислать:)))) пише reboot и не reboot :))) Сервер не перегружаеться ping как шел так и идет от сервака (из дома пробывал:) )
>[оверквотинг удален]
>>>>
Че-та седня хрень какая-то..
Че пингаешь-то? Сервак гугля? Левый IP пни для пробы...
Взял левый ip для пробы (дохлый конечно:))) )
>[оверквотинг удален]
>>> Это как так "Сервак не перегружаеться" ??
>>> Типа тонкий аглицкий юмор, да ?
>>> Он же тебе английскими буквами по русски написал: "reboot"
>>> Ты эхо-то убери и протести еще раз.
>>> ping -n -q -c 1 -t 1 8.8.8.8 || reboot
>> тебе скрин прислать:)))) пише reboot и не reboot :))) Сервер не перегружаеться
>> ping как шел так и идет от сервака (из дома пробывал:)
>> )
> Че-та седня хрень какая-то..
> Че пингаешь-то? Сервак гугля? Левый IP пни для пробы...
>[оверквотинг удален]
>>>> Это как так "Сервак не перегружаеться" ??
>>>> Типа тонкий аглицкий юмор, да ?
>>>> Он же тебе английскими буквами по русски написал: "reboot"
>>>> Ты эхо-то убери и протести еще раз.
>>>> ping -n -q -c 1 -t 1 8.8.8.8 || reboot
>>> тебе скрин прислать:)))) пише reboot и не reboot :))) Сервер не перегружаеться
>>> ping как шел так и идет от сервака (из дома пробывал:)
>>> )
>> Че-та седня хрень какая-то..
>> Че пингаешь-то? Сервак гугля? Левый IP пни для пробы...Хы.. ))
четыре однерки??
ифконфиг выводит? у мну да!
ping -q -c 1 1.1.1.1 || ifconfig
Я ж написал что пингую:)))
unix# ping -n -q -c 1 -t 1 77.51.199.250 || echo reboot
77.51.199.250 .....
> Я ж написал что пингую:)))
> unix# ping -n -q -c 1 -t 1 77.51.199.250 || echo reboot
> 77.51.199.250 .....Ты че в натуре стебаешься??
Тебе ж говорят ЭХО УБЕРИ!Короче, для тех кто на бронепоезде:
Было ping -n -q -c 1 -t 1 77.51.199.250 || echo reboot
А надо ping -n -q -c 1 -t 1 77.51.199.250 || reboot
Урааа перегрузился :))) Я не прикалываюсь пиво пЪю :) не заметил . Подскажи как правельно в cron добавить эту строчку????
И еще было б неплохо скрипт написать типа
проверить 8.8.8.8 если пинга нет то restart mpd4 - пробуем заного - если нет то рестарт сетевой карты (бывает что зависает тоже но не факт) если нет пинга то теперь уже и reboot :)))) попробую начирикать если не так поправь пож!!! И спасибо за помощь!!!!!
> А надо ping -n -q -c 1 -t 1 77.51.199.250 || reboot
> Урааа перегрузился :))) Я не прикалываюсь пиво пЪю :) не заметил .
> Подскажи как правельно в cron добавить эту строчку????*/5 * * * * root /sbin/ping -q -c 1 -t 1 8.8.8.8 || /sbin/reboot
Эта строка будет проверять каждые 5 минут паблик днс гугля и если он в дауне, то ребут твоего сервака )))
*/5 * * * * root /sbin/ping -q -c 1 -t 1 8.8.8.8 || /usr/local/etc/rc.d/mpd4 restartдля начало мне надо перегрузить mpd4 .... Так подойдет??? Михалыч спасибо:))) Вот скрипт который я пока не знаю он был бы идеален --проверка dns гугла - если нет то перезагрузка mpd4 -- если нет то уже перезагрузка сервака:)))
Супер!!! :))) Работает mpd4 restart !!!! убил mpd4 и скрипт сработал!!!!
> скрипт который я пока не знаю он был бы идеален --проверка
> 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}
restartreturn 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
fireturn 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}
fireturn 0
}
# СТАРТ - ОБЩЕЕ НАЧАЛО РАБОТЫ СКРИПТА
echo "=============================================================" >> ${LOG}
echo "$(date +%d-%m-%y\ %H:%M:%S) СТАРТ ПРОВЕРКИ ДОСТУПНОСТИ ИНТЕРНЕТА" >> ${LOG}
ping_serverexit 0
Кидаем скрипт куда-нибудь. Обзываем его, ну скажем, check_inet.sh
Делаем его исполняемым и вызываем по крону как нам надо, хоть каждые 5 минут.
В кроне пути указываем полные.
Спасибо ! буду на трезвую голову разбираться:))))
> то и его и сервак. Поэтому хотел запихнуть скрипт в crontab
> чтоб он проверял наличие интернета и перегружал mpd4.Я бы ещё попробовал перегрузить и Ethernet через
rmmod xxx
modprobe xxx
где XXX - модуль Ethernet карты. Не он ли глючит?Если глючит железо то да, reboot решает.
Хочу еще так попробывать
ifconfig dc0 down && ifconfig dc0 up && /usr/local/etc/rc.d/mpd4 restart
перегрузить сетевуху сначало...