Скрипт для проверки соеденения (и его запуска , если нет...)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
DarkLelik
Сообщения: 194
Статус: Развожу демонов
ОС: Fedora 16/ FreeBsd 8.0

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

Сообщение DarkLelik »

Господа , всем доброго времени суток. Есть задача с которой я пока справится не могу , но очень нужно ...
Кратко о ситуации.:
Есть инет который поднимается командой "ppp -ddial pppoe" но он последнее время очень часто рвется т.е. на модеме пропадает несущая . Следовательно как только несущая появляется нужно убивать сессию ppp и запускать заново. Если кто может помогите написать скрипт который через заданный интервал времени посылал пинг на ДНС сервер и если не получает ответа завершает сессию ppp и запускает ее по новой ....
Заранне спасибо ...
Вам навредит не то, о чем вы не знаете, а то, о чем вы думаете, что знаете, а на самом деле не знаете.

FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
Спасибо сказали:
Аватара пользователя
velik
Сообщения: 53
ОС: Archlinux

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

Сообщение velik »

ping -c 2 ya.ru
if [ $? -eq 0 ]
then
что делать если хорошо
fi
что делать если плохо

Хотя не уверен что это оптимальный вариант.
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

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

Сообщение Uncle_Theodore »

velik писал(а):
03.05.2007 02:49
ping -c 2 ya.ru
if [ $? -eq 0 ]
then
что делать если хорошо
fi
что делать если плохо

Хотя не уверен что это оптимальный вариант.

Ваше команда, которая обрабатывает ситуацию "если плохо" стоит после закрытия условия (fi).
Автору: обсуждалось это тут, совсем недавно, поищите.
Спасибо сказали:
Аватара пользователя
DarkLelik
Сообщения: 194
Статус: Развожу демонов
ОС: Fedora 16/ FreeBsd 8.0

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

Сообщение DarkLelik »

2 All
Спасибо , я конечно поищу ну если что буду спрашивать .
Вам навредит не то, о чем вы не знаете, а то, о чем вы думаете, что знаете, а на самом деле не знаете.

FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
Спасибо сказали:
Saferxine
Сообщения: 3
ОС: Fedora Core 6

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

Сообщение Saferxine »

#!/bin/sh

ping -c 1 ya.ru
if
[ $? != 0 ];
then
echo "Connection lost! Shutting down pppd..."
ifdown corbina
sleep 1

ping -c 1 10.120.0.17
if
[ $? != 0 ];
then
echo "Shutting down eth0..."
ifdown eth0
sleep 1
echo "Raising up eth0..."
ifup eth0
sleep 1
fi

echo "Connecting to Corbina..."
ifup corbina
fi

P.S. Скриптик не мой, так я только учюсь, и знаю что слишком хороший пинг требую от инета и при малейшем зависание - рестарт
Спасибо сказали:
Аватара пользователя
DarkLelik
Сообщения: 194
Статус: Развожу демонов
ОС: Fedora 16/ FreeBsd 8.0

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

Сообщение DarkLelik »

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

#!/bin/sh
if ping -c 2 80.254.111.254
then echo "Connection Good "
else
echo "Connection lost, restart ppp"
pkill ppp
sleep 3
ppp -ddial pppoe
sleep 3
fi


Господа, решено спасибо всем )
Вам навредит не то, о чем вы не знаете, а то, о чем вы думаете, что знаете, а на самом деле не знаете.

FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
Спасибо сказали:
Аватара пользователя
DarkLelik
Сообщения: 194
Статус: Развожу демонов
ОС: Fedora 16/ FreeBsd 8.0

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

Сообщение DarkLelik »

DarkLelik писал(а):
03.05.2007 15:53

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

#!/bin/sh
if ping -c 2 80.254.111.254
then echo "Connection Good "
else
echo "Connection lost, restart ppp"
pkill ppp
sleep 3
ppp -ddial pppoe
sleep 3
fi


Господа, решено спасибо всем )


Вот решил поднять старую тему ))) . Этот скрипт работал при единственном интерфейсе теперь на машине несколько и при потере соединения теперь получаю

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

ping: sendto: No route to host


Соответственно скриптом это воспринимается как ответ , Как быть ?
Вам навредит не то, о чем вы не знаете, а то, о чем вы думаете, что знаете, а на самом деле не знаете.

FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

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

Сообщение sash-kan »

DarkLelik писал(а):
02.12.2008 08:57
Как быть?
наверно, воспользоваться аргументом -I программы ping.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
darkhorse
Сообщения: 20
ОС: Slackware Debian SLES

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

Сообщение darkhorse »

Вот работающий скрипт по переключению между провайдерами

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

#!/bin/sh

#-- ping site ya.ru --
MULTIPING=213.180.204.8
GW_PROV1=1.1.1.1
GW_PROV2=2.2.2.2

#-------------------------------------------------------------------------------------------------------
route add -host $MULTIPING gw $GW_PROV1
#-------------------------------------------------------------------------------------------------------
function obj1 {
if ping -I eth0 -q -c 6 -n $MULTIPING; then
    if ! $optic1; then
        echo -n "INET PROV1 is UP " >> /var/log/inet_kanal.log && date >> /var/log/inet_kanal.log
        echo "-------------------------------------------------" >> /var/log/inet_kanal.log
        ip route change default via $GW_PROV1
        optic1=true
    fi
      else
    if $optic1; then
        echo -n "INET PROV1 is DOWN " >> /var/log/inet_kanal.log && date >> /var/log/inet_kanal.log
        ip route change default via $GW_PROV2
        optic1=false
    fi
fi
}
#-------------------------------------------------------------------------------------------------------
if ping -I eth0 -q -c 6 -n $MULTIPING; then
        optic1=true
        echo -n "INET PROV1 is UP " >> /var/log/inet_kanal.log && date >> /var/log/inet_kanal.log
        echo "-------------------------------------------------" >> /var/log/inet_kanal.log
        ip route change default via $GW_PROV1
    else
        echo -n "INET PROV1 is DOWN " >> /var/log/inet_kanal.log && date >> /var/log/inet_kanal.log
        ip route change default via $GW_PROV2
        optic1=false
fi
#-------------------------------------------------------------------------------------------------------
while :; do
    obj1
    sleep 10
done
www.itgorod.com
Спасибо сказали: