Господа , всем доброго времени суток. Есть задача с которой я пока справится не могу , но очень нужно ...
Кратко о ситуации.:
Есть инет который поднимается командой "ppp -ddial pppoe" но он последнее время очень часто рвется т.е. на модеме пропадает несущая . Следовательно как только несущая появляется нужно убивать сессию ppp и запускать заново. Если кто может помогите написать скрипт который через заданный интервал времени посылал пинг на ДНС сервер и если не получает ответа завершает сессию ppp и запускает ее по новой ....
Заранне спасибо ...
Скрипт для проверки соеденения (и его запуска , если нет...)
Модераторы: SLEDopit, Модераторы разделов
-
DarkLelik
- Сообщения: 194
- Статус: Развожу демонов
- ОС: Fedora 16/ FreeBsd 8.0
Скрипт для проверки соеденения
Вам навредит не то, о чем вы не знаете, а то, о чем вы думаете, что знаете, а на самом деле не знаете.
FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
-
velik
- Сообщения: 53
- ОС: Archlinux
Re: Скрипт для проверки соеденения
ping -c 2 ya.ru
if [ $? -eq 0 ]
then
что делать если хорошо
fi
что делать если плохо
Хотя не уверен что это оптимальный вариант.
if [ $? -eq 0 ]
then
что делать если хорошо
fi
что делать если плохо
Хотя не уверен что это оптимальный вариант.
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Скрипт для проверки соеденения
Ваше команда, которая обрабатывает ситуацию "если плохо" стоит после закрытия условия (fi).
Автору: обсуждалось это тут, совсем недавно, поищите.
-
DarkLelik
- Сообщения: 194
- Статус: Развожу демонов
- ОС: Fedora 16/ FreeBsd 8.0
Re: Скрипт для проверки соеденения
2 All
Спасибо , я конечно поищу ну если что буду спрашивать .
Спасибо , я конечно поищу ну если что буду спрашивать .
Вам навредит не то, о чем вы не знаете, а то, о чем вы думаете, что знаете, а на самом деле не знаете.
FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
-
Saferxine
- Сообщения: 3
- ОС: Fedora Core 6
Re: Скрипт для проверки соеденения
#!/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. Скриптик не мой, так я только учюсь, и знаю что слишком хороший пинг требую от инета и при малейшем зависание - рестарт
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: Скрипт для проверки соеденения
Код: Выделить всё
#!/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
FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
-
DarkLelik
- Сообщения: 194
- Статус: Развожу демонов
- ОС: Fedora 16/ FreeBsd 8.0
Re: Скрипт для проверки соеденения
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
FreeBsd 8.0 - Сервер
Fedora - 16 Desktop
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Скрипт для проверки соеденения
наверно, воспользоваться аргументом -I программы ping.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
darkhorse
- Сообщения: 20
- ОС: Slackware Debian SLES
Re: Скрипт для проверки соеденения
Вот работающий скрипт по переключению между провайдерами
Код: Выделить всё
#!/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
donewww.itgorod.com