добрый день.
хочу совет получить, т.к. сам знаю мало
Нужен скрипт, общее описание:
1) проверяет наличие присутствия интрефейса ppp каждую минуту (на данный момент реализовано)
---------------------------------------------------------------
exec >> /var/log/adsl_debug 2>> /var/log/adsl_debugif (! /sbin/ifconfig ppp999); then
/usr/bin/poff dsl-provider
sleep 5
/usr/bin/pon dsl-providerecho `date` -- ADSL is down >> /var/log/adsl_down
fi
---------------------------------------------------------------
Скрипт работает.2) Есть косяк с разрывом подключения , косяк скорее всего на стороне прова.
На дебиане следующий лог наблюдаю:
1) сначало рвется (незнаю почему)
Feb 26 06:16:13 gw-server pppd[21776]: LCP terminated by peer
Feb 26 06:16:13 gw-server pppd[21776]: Connect time 1440.1 minutes.
Feb 26 06:16:13 gw-server pppd[21776]: Sent 792166927 bytes, received 1160567468 bytes.
Feb 26 06:16:16 gw-server pppd[21776]: Connection terminated.
Feb 26 06:16:16 gw-server pppd[21776]: Modem hangup
Feb 26 06:17:01 gw-server pppd[21776]: Terminating on signal 15
Feb 26 06:17:01 gw-server pppd[21776]: Exit.
2) затем попытка подключения
Feb 26 06:17:12 gw-server pppd[14134]: Plugin rp-pppoe.so loaded.
Feb 26 06:17:12 gw-server pppd[14135]: pppd 2.4.4 started by root, uid 0
Feb 26 06:17:12 gw-server pppd[14135]: PADS: System-Error: AC: Cannot open PPPoE session.
Feb 26 06:17:12 gw-server pppd[14135]: Exit.
Feb 26 08:21:11 gw-server pppd[3981]: Plugin rp-pppoe.so loaded.
Feb 26 08:21:11 gw-server pppd[3982]: pppd 2.4.4 started by root, uid 0
Feb 26 08:21:46 gw-server pppd[3982]: Timeout waiting for PADO packets
Feb 26 08:21:46 gw-server pppd[3982]: Unable to complete PPPoE Discovery
При подключении через ноут с виндой (от оборудования оператора) - ошибка 772 выскакивает (Аппаратура удаленного компьютера несовместима с типом запрашиваемого вызова).
Причем заметил, что если тыкать на переподключение (кнопку) - то на 15 раз (не обязательно, смысл в том что если тыкать много) подключится.
Оператор не видит мои 14 попыток, видит только 15 успешную. Пришли к выводу что пакеты где то не проходят (возможно на коммутаторе оператора).
На дебиане тоже, если жать постоянно pon dsl-provider - подключится.
Так вот это дело (пока проблема не решится хочу автоматизировать в виде скрипта)Поэтому, рискну предположить такой вид скрипта:
---------------------------------------------------------------
exec >> /var/log/adsl_debug 2>> /var/log/adsl_debugif (! /sbin/ifconfig ppp999); then
/usr/bin/poff dsl-provider
sleep 5
/usr/bin/pon dsl-provider
sleep 5
if (! /sbin/ifconfig ppp999); then
while ( /sbin/ifconfig ppp999 ) - здесь неверно (т.к. я ниразу не писал скрипт, взял по аналогии с IF) , нужно что б была проверка интерфейса - пока его нет выполнять действия
do
pon dsl-provider
sleep 1
done
fi
echo `date` -- ADSL is down >> /var/log/adsl_down
fi
---------------------------------------------------------------Смысл в том, 1 раз в минуту по крону идет проверка, если интерфейса нет, то происходит подключение, если после этого нет интерфейса - то подключение каждую секунда пока не появится интерфейс... Вот такой геморой.
Может кто подсказать по сему?
>[оверквотинг удален]
> sleep 1
> done
> fi
> echo `date` -- ADSL is down >> /var/log/adsl_down
> fi
> ---------------------------------------------------------------
> Смысл в том, 1 раз в минуту по крону идет проверка, если
> интерфейса нет, то происходит подключение, если после этого нет интерфейса -
> то подключение каждую секунда пока не появится интерфейс... Вот такой геморой.
> Может кто подсказать по сему?вот вариант такой:
if (! /sbin/ifconfig ppp999); then
/usr/bin/poff dsl-provider
sleep 5
i=0
while [ $i -lt 40 ]
do
pon dsl-provider
if ( /sbin/ifconfig ppp999 ); then (вот тут не совсем уверен, т.к. ! знак вроде как означает инвентирования условия, - поэтому если интерфейс есть - то выход из цикла
break
fi
sleep 1
i=$[$i+1]
done
echo `date` -- ADSL is down >> /var/log/adsl_down
fi
Правильно ли?
>[оверквотинг удален]
> sleep 1
> done
> fi
> echo `date` -- ADSL is down >> /var/log/adsl_down
> fi
> ---------------------------------------------------------------
> Смысл в том, 1 раз в минуту по крону идет проверка, если
> интерфейса нет, то происходит подключение, если после этого нет интерфейса -
> то подключение каждую секунда пока не появится интерфейс... Вот такой геморой.
> Может кто подсказать по сему?Зачем изобретать велосипед?
Читать http://wiki.debian.org/ru/pptp-linuxпараметр persist - для переподключения после обрыва подключения
обратить внимание на папки /etc/ppp/ip-up.d/ /etc/ppp/ip-down.d/
и файлы /etc/ppp/ip-up /etc/ppp/ip-down
> параметр persist - для переподключения после обрыва подключения
> обратить внимание на папки /etc/ppp/ip-up.d/ /etc/ppp/ip-down.d/
> и файлы /etc/ppp/ip-up /etc/ppp/ip-downугу, кроме этого еще для проверки живого соединения существуют еще опции
lcp-echo-interval и lcp-echo-failure.