скрипт проверки соединения с инетом

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

скрипт проверки соединения с инетом

Непрочитанное сообщение almos » 2006-10-06 15:36:32

Hi all!
Есть следующая проблема: на сервере отвечающий за соединение с нетом установлено 2 xdsl модема sirius по 115kbps каждый, в режиме multilink т.е. 2 физических канала объединены в один логический (соединение через ppp). Иногда пропадает синхронизация (с ней и инет), причем спонтанно. Я нашел способ переинициализации портов и перезапуска драйвера, но его же надо производить тогда, когда нет пропал. Поэтому надо написать скрипт который бы проверял коннект с нетом, и в случае его отсутствия запускал мой скрипт, это все хозяйство прописать в кроне …
Вот только проблемка, кто-то может подсобить скриптом проверки соединения (я в принципе понимаю как это сделать, но мои познания в области утилит командного интерпритатора недостаточный). Мне нужен только скрипт проверки соединения, если есть коннект, то ниче не делать, если есть запускать shell скрипт…
Заранее благодарен

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-10-06 15:44:22

а как ты узнаёшь что упал?
(на фре)
Если через ifconfig - надо его вывод распарсить и всё..
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: скрипт проверки соединения с инетом

Непрочитанное сообщение dikens3 » 2006-10-06 15:44:30

almos писал(а):Hi all!
Есть следующая проблема: на сервере отвечающий за соединение с нетом установлено 2 xdsl модема sirius по 115kbps каждый, в режиме multilink т.е. 2 физических канала объединены в один логический (соединение через ppp). Иногда пропадает синхронизация (с ней и инет), причем спонтанно. Я нашел способ переинициализации портов и перезапуска драйвера, но его же надо производить тогда, когда нет пропал. Поэтому надо написать скрипт который бы проверял коннект с нетом, и в случае его отсутствия запускал мой скрипт, это все хозяйство прописать в кроне …
Вот только проблемка, кто-то может подсобить скриптом проверки соединения (я в принципе понимаю как это сделать, но мои познания в области утилит командного интерпритатора недостаточный). Мне нужен только скрипт проверки соединения, если есть коннект, то ниче не делать, если есть запускать shell скрипт…
Заранее благодарен

Код: Выделить всё

#!/usr/local/bin/bash

testip="Какой-нибудь внешний IP, лучше DNS"

kol=$(/sbin/ping -c 4 $testip | grep "received" | awk '{print $4}')
if [ $kol == 0 ]
    then
    echo "Нет пинга, Ждём 1 минуту" | logger -t NOPING
    sleep 60
    kol=$(/sbin/ping -c 4 $testip | grep "received" | awk '{print $4}')
        if [ $kol == 0 ]
            then
            ТУТ ТВОЙ СКРИПТ
            exit 0
        fi
fi

Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-10-06 15:45:22

статейку бы чтоли накалякал про мультилинк...
первый раз про такое слышу..
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-10-06 15:50:49

lissyara писал(а):а как ты узнаёшь что упал?
(на фре)
Если через ifconfig - надо его вывод распарсить и всё..
Просто пропадает инет, модемы лампочками мигают, данные не идут, причем в системе фактически соединение присутствует. Эта проблема не у меня одного...
Достал меня это долбанный укртелеком с его глюками.
Модемы через com порты подключаются...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-10-06 15:51:37

НУ, пример уже привели :)))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-10-06 15:52:42

правда пример некорректный - на bash...
На shell - более независимо от установленного на сервре ПО...
У меня, например bash не стоит. и никогда не будет :))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2006-10-06 15:53:08

almos писал(а): Просто пропадает инет, модемы лампочками мигают, данные не идут, причем в системе фактически соединение присутствует. Эта проблема не у меня одного...
Достал меня это долбанный укртелеком с его глюками.
Модемы через com порты подключаются...
Мигают, это типа соединение заново устанавливают?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2006-10-06 15:54:29

lissyara писал(а):правда пример некорректный - на bash...
На shell - более независимо от установленного на сервре ПО...
У меня, например bash не стоит. и никогда не будет :))
А это пример, а не призыв к действию.

Я ещё и на pgbash пишу для postgres. Проблем за год пока нет.
СИ я не знаю, вот и приходится.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-10-06 16:01:09

ага. а вот человеку баш придётся накатывать тока ради этого :)))
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-10-06 16:14:53

dikens3 писал(а):
almos писал(а): Просто пропадает инет, модемы лампочками мигают, данные не идут, причем в системе фактически соединение присутствует. Эта проблема не у меня одного...
Достал меня это долбанный укртелеком с его глюками.
Модемы через com порты подключаются...
Мигают, это типа соединение заново устанавливают?
Нет. Соединение не восстанавливается.
Модемы не понимают что синхронизация пропала. То же самое с системой.
Все отлично, никаких признаков сбоя, а инета нету. Исправляется перезагрузкой компа или переинициализацией ком портов и перезагрузкой ppp.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2006-10-06 16:26:29

almos писал(а): Нет. Соединение не восстанавливается.
Модемы не понимают что синхронизация пропала. То же самое с системой.
Все отлично, никаких признаков сбоя, а инета нету. Исправляется перезагрузкой компа или переинициализацией ком портов и перезагрузкой ppp.
У меня подобный прикол есть с PPPoE соединением. ADSL Модем зависает (DLINK), только не полностью. Т.е. через http:// на него можно зайти, посмотреть, но трафик не бегает. после перезапуска модема и PPPoE соединения всё путём. Писал автоматический скрипт, с помощью curl, для захода и перезапуска модема и PPPoE. Работает. Собственно это он и есть, только часть с модемом вырезана.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-10-06 17:21:36

Может кому-то понадобится скрипт переинициализации портов (в multilink режиме):

#!/bin/sh

#убиваем ppp, живучий гад :)
/usr/bin/killall ppp
/usr/bin/killall ppp
/usr/bin/killall ppp

/bin/sleep 2

/sbin/comcontrol /dev/cuad0 dtrwait 300 drainwait 0
/bin/stty < /dev/cuad0 -clocal crtscts hupcl 9600 reprint ^R
/bin/stty < /dev/cuad0 -clocal -crtscts -hupcl 0

/sbin/comcontrol /dev/cuad1 dtrwait 300 drainwait 0
/bin/stty < /dev/cuad1 -clocal crtscts hupcl 9600 reprint ^R
/bin/stty < /dev/cuad1 -clocal -crtscts -hupcl 0

#запускаем ppp (параметры конфигурации - sirius_mlp) + запускаем с опцией nat
/usr/sbin/ppp -quiet -ddial -nat sirius_mlp

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Re: скрипт проверки соединения с инетом

Непрочитанное сообщение proxy-man » 2006-11-08 21:14:51

dikens3 писал(а):
almos писал(а):Hi all!
Есть следующая проблема: на сервере отвечающий за соединение с нетом установлено 2 xdsl модема sirius по 115kbps каждый, в режиме multilink т.е. 2 физических канала объединены в один логический (соединение через ppp). Иногда пропадает синхронизация (с ней и инет), причем спонтанно. Я нашел способ переинициализации портов и перезапуска драйвера, но его же надо производить тогда, когда нет пропал. Поэтому надо написать скрипт который бы проверял коннект с нетом, и в случае его отсутствия запускал мой скрипт, это все хозяйство прописать в кроне …
Вот только проблемка, кто-то может подсобить скриптом проверки соединения (я в принципе понимаю как это сделать, но мои познания в области утилит командного интерпритатора недостаточный). Мне нужен только скрипт проверки соединения, если есть коннект, то ниче не делать, если есть запускать shell скрипт…
Заранее благодарен

Код: Выделить всё

#!/usr/local/bin/bash

testip="Какой-нибудь внешний IP, лучше DNS"

kol=$(/sbin/ping -c 4 $testip | grep "received" | awk '{print $4}')
if [ $kol == 0 ]
    then
    echo "Нет пинга, Ждём 1 минуту" | logger -t NOPING
    sleep 60
    kol=$(/sbin/ping -c 4 $testip | grep "received" | awk '{print $4}')
        if [ $kol == 0 ]
            then
            ТУТ ТВОЙ СКРИПТ
            exit 0
        fi
fi

Чего-то не работает скрипт... :-(

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2006-11-09 11:27:57

Там нечему не работать. :-) Простейшие ПИНГИ :-)

Код: Выделить всё

#!/usr/local/bin/bash

testip="Какой-нибудь внешний IP, лучше DNS"

kol=$(/sbin/ping -c 4 $testip | grep "received" | awk '{print $4}')
if [ $kol == 0 ]
    then
    echo "Нет пинга, Ждём 1 минуту" | logger -t NOPING
    sleep 60
    kol=$(/sbin/ping -c 4 $testip | grep "received" | awk '{print $4}')
        if [ $kol == 0 ]
            then
            echo "Выполнение моего скрипта. Убиваю все PPPoE соединения, прибиваю default'овый маршрут и запускаю скрипт соединения с провом заново." | logger -t NOPING
            ТУТ ТВОИ КОМАНДЫ
            exit 0
        fi
fi 
Соственно нужен BASH, и немного понимать что хочешь. Я ещё строчку добавил. Попробуй и посмотри что будет в логах.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-09 15:10:43

однако, на шелле писать надо...
Убей их всех! Бог потом рассортирует...

Artem
рядовой
Сообщения: 10
Зарегистрирован: 2006-09-28 16:53:44
Контактная информация:

Непрочитанное сообщение Artem » 2006-11-13 11:50:27

lissyara писал(а):однако, на шелле писать надо...
очень интересна данная тема
обращяюсь к lissyara
напишите статейку по данному вопросу.....
теже грабли и у меня (тож укртел) собак
только мне б жилательно тож самого на sh и чтоб в текстовый файлик скидовал когда и в какое время пропал инет..... и в какое время его врубили
воть...

а то говорят у нас постоянно всё работает (типо аля проблемы у Вас)

BAV_Lug
сержант
Сообщения: 299
Зарегистрирован: 2006-06-02 15:38:28
Откуда: Харьков

Непрочитанное сообщение BAV_Lug » 2006-11-13 13:16:00

Я это на перле делал (он то я думаю у всех стоит :) )

Примерно так

Код: Выделить всё

#!/usr/bin/perl
chomp($isi=`/sbin/ping -c 3 "IP адрес (я ставил ДНС прова)"|grep "64 bytes"|wc -l`);
if (not($isi>0)) {
system("date");
printf("Restart Inet\n");
system("/usr/bin/killall ppp");
sleep(5);
system('/usr/sbin/ppp -ddial inet");

затем в крон (раз в пять минут) >> /var/log/restartinet

Вроде все

ЗЫ А на статью это вроде и не тянет

Artem
рядовой
Сообщения: 10
Зарегистрирован: 2006-09-28 16:53:44
Контактная информация:

Непрочитанное сообщение Artem » 2006-11-13 13:51:50

хотелось бы что-бы появилась в мелочах
как маленькая статейка и всё-же на sh

BAV_Lug
сержант
Сообщения: 299
Зарегистрирован: 2006-06-02 15:38:28
Откуда: Харьков

Непрочитанное сообщение BAV_Lug » 2006-11-13 14:58:40

Artem писал(а):хотелось бы что-бы появилась в мелочах
как маленькая статейка и всё-же на sh
Блин, с перла на sh перевести не проблема :)
Щас дообедаю и займусь :)

Artem
рядовой
Сообщения: 10
Зарегистрирован: 2006-09-28 16:53:44
Контактная информация:

Непрочитанное сообщение Artem » 2006-11-13 15:44:35

спасибо огромное
если можно
чтоб если инет праподает то в текстовый файлик записовалось когда пропал
дату и время
и когда появился к примеру
13.11.06 14.50 -----> 13.11.06 15.03

зарание спасибо

BAV_Lug
сержант
Сообщения: 299
Зарегистрирован: 2006-06-02 15:38:28
Откуда: Харьков

Непрочитанное сообщение BAV_Lug » 2006-11-13 15:46:24

Ну вот для страждущих :)

Код: Выделить всё

#!/bin/sh

isi=`/sbin/ping -c 3 ip-адрес | grep "64 bytes" | wc -l`
if !(test $isi -gt "0")
then
echo Нет инета `date`
/usr/bin/killall ppp
sleep 5 
/usr/sbin/ppp -ddial inet
fi
Примерно так. Ну а дальше уже Ваша фантазия :)

Artem
рядовой
Сообщения: 10
Зарегистрирован: 2006-09-28 16:53:44
Контактная информация:

Непрочитанное сообщение Artem » 2006-11-13 15:53:15

ну а если чтоб в файлик записывал
сори понимаю что легко (только я в шеллле нехрена не рублю)
если можно так как я привёл на 1 сообщение выше

BAV_Lug
сержант
Сообщения: 299
Зарегистрирован: 2006-06-02 15:38:28
Откуда: Харьков

Непрочитанное сообщение BAV_Lug » 2006-11-13 16:33:19

Artem писал(а):ну а если чтоб в файлик записывал
сори понимаю что легко (только я в шеллле нехрена не рублю)
если можно так как я привёл на 1 сообщение выше
Так как ты привел выше сложнее (нужно либо парсить логи либо переписывать скрипт так, что-бы из него не было выхода пока не появится инет снова (но при запуске из крона нужно тогда еще делать дополнительную проверку на наличии его копии в пямяти, иначе он может очень сильно размножится (зная какой инет у Укртела :))))
А вот так попроще

Код: Выделить всё

echo Нет инета `date` >> /var/log/restartinet.log
Когда не будет инета будет добавляться строчка в файл restartinet.log

ЗЫ Я вот тут подумал, слишком у многих это проблема, может наваять полный скрипт и накатать статейку?

Artem
рядовой
Сообщения: 10
Зарегистрирован: 2006-09-28 16:53:44
Контактная информация:

Непрочитанное сообщение Artem » 2006-11-13 16:51:05

очень бы хотелось увидеть
просто задрал укртел морозом
типо а у нас всё работает
а так хоть можно будет придаставлять чё то
чтоб они шивилились
очень интересна данная тема