LinuxForum.Fans
Тема

Cкрипт и реконнект pptp

Автор: redgy92 25 сообщений 10427 просмотров
#154383

значит, сделал я из компутера роутер smile
инет подключается на нем командой sudo /usr/bin/beeline start (либо sudo pon beeline)
соединение иногда отваливается, и приходится вручную его подключать (а иногда и по телефону объяснять как это делается)
нагуглил скрипт, проверяющий доступность сети и реконектящий pppoe, но переделать под свои нужды не получилось. Прошу помощи

Этим скриптом хотел автоматизировать процесс smile т.е. скрипт проверяет доступность сайта, если связи нет - реконнект

вот содержание скрипта, подключающего инет

Показать
text
#!/bin/sh
case "$1" in
start)
echo -n "Starting beeline: "
sudo pon beeline
sleep 5
sudo route add default dev ppp0
#####################################################
#####################
route add -host vpn.internet.beeline.ru gw 10.26.168.1
#####################################################
#####################
ifconfig ppp
echo
;;
stop)
echo -n "Stopping beeline: "
sudo poff beeline
sleep 5
sudo route del default dev ppp0
ifconfig
echo
;;
*)
echo "*** Usage: beeline {start|stop}"
exit 1;
;;
esac
exit 0

вот нагугленый скрипт

Показать
text
#!/bin/bash

ip="google.ru" count=3 attempt=3 file="./time"

result=$(ping -c ${count} ${ip} | tail -2 | head -1 | awk '{print $4}')

if [ $result -eq 0 ]; then if [ -f ${file} ]; then f=$(cat ${file}) if [ ${f} -eq ${attempt} ]; then rm ${file} /etc/init.d/pptpd restart else att=$(expr ${f} + 1) fi else att=1 fi

if [ ! -z ${att} ]; then echo ${att} > ${file} fi else if [ -f ${file} ]; then rm ${file} fi fi

тапками не кидайте, никогда не имел дело со скриптами и всяким таким smile

#154387

И что именно не так????

У меня на роутере тоже поднимаетса ADSL соединение. Само соединение поднимаю через pppoe. И оно может отваливатса. Я был сам навалял простой вкрипт который проверял наличия интерфейса ppp0 и если его нету то стартовал pppoe. Но он некоректно работал. И была у меня идея сделать по другому. А это по проверке pid файла демона pppoe который отвечает за подключение и реконект если файла нету, тогда pppoe-start. Но пока слава богу конект нормальный так что самого скрипта я ещё не написал, но такая идея естя.

#154389

проблема в том, что я не знаю как изменить скрипт, чтобы он работал smile
я пробовал заменить /etc/init.d/pptpd restart на /sbin/beeline start но ничего не вышло smile

походу сам разобрался, завтра посмотрим, так или нет smile

upd: завтро еще не наступило, а скрипт уже работает smile оказалось что не скрипт не работал, а в кронтабе не оставил в конце строчку пустую :o да и из скрипта все лишнее убрал

Показать
text
#!/bin/bash

ip="google.ru" count=3 file="./time"

result=$(ping -c ${count} ${ip} | tail -2 | head -1 | awk '{print $4}') date=$(date)

if [ $result -eq 0 ]; then /sbin/beeline start echo "$date connecting" >> ${file} else echo "$date OK" >> ${file} fi

#154398

теперь вопрос про кронтаб smile при подключении инета требуются права рута, как заставить крон запускать от рута?

crontab -e

text
SHELL=/bin/bash
MAILTO=redgy92
*/5 * * * * /home/redgy92/check.sh 2>/home/redgy92/log.cron

cat /home/redgy92/log.cron

text

sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
/sbin/beeline: 28: route: not found
/sbin/beeline: 28: ifconfig: not found
#154400
redgy92 написал:
как заставить крон запускать от рута

Создать крон у рута

redgy92 написал:
/sbin/beeline: 28: ifconfig: not found

Крон не устанавливает переменные окружения. Надо все команды писать с полными путями (в данном случае - в файле /sbin/beeline).

#154402

спасибо, но я уже и сам допер smile у меня всегда так: пытаюсь решить проблему -> ничего не нагуглил -> написал сдесь -> бац!! и решение тут же нашел :D

#154403

:D maxfail в конфиге pptp ставишь 0 и всё а точнее
persist
maxfail 0

А всякие скрипты кривые в топку

#154417

Kettler, т.е. напишу

text
persist
maxfail 0

в /etc/ppp/peers/beeline и он сам буз скрипта будет делать реконнект? :O
я так понял это и есть конфиг pptp, о котором вы говорили smile

text
pty "pptp vpn.internet.beeline.ru --nolaunchpppd --nobuffer --loglevel 0"
connect /bin/true
user логин
password "пароль"
remotename PPTP
persist
nodeflate
nobsdcomp
noauth  
mtu 1460
#154421

В теории - да, достаточно дописать эти два параметра. А на практике - не редко приходится-таки плясать с бубном (писать доп. скрипты), т.к. провайдеры часто работают далеко не идеально.

Например у меня не редкая ситуация - линк есть - инета нет (доступны только ресы прова). В такой ситуации пппд не видит ничего ненормального, и не считает нужным переконнектиться (что вобщем-то правильно - линк-то есть, а что там дальше - не его дело). Потому давным давно был написан и поставлен в крон скриптик.

#154422

Угу --nobuffer вот это правильно!
Ну и добавь
persist
maxfail 0

и всё будет хорошо без костылей

Да и вообще pptp это не есть хорошо если есть l2tp лучше настраивай l2tp

#154431

Kettler, ухты, реально работает smile вот только неизвесно, что произойдет, если ppp0 не упадет, а просто повиснет..как сказал shumomer опять скрипт и кронтаб?

#154437

Неа у меня сутками пашет в организациях где канал не больше 4 мб надо wink
Хотя ссесия у прова 10 часов. Не должно быть таких проблем.
Я незнаю как в других дистрах но в debian нету понятия повиснуть) понял во общем.

#154447

l2tp не получается настроить, руки наверное.... :D

в debian нету понятия повиснуть

зато у билайна есть такое понятие smile pptp не отваливается, а страницы не открываются :o

#154457
redgy92 написал:
как сказал shumomer опять скрипт и кронтаб?

что в этом плохого? как альтернатива - сменить провайдера... ну или проверять, работают странички, или нет.

#154494

Да и смысла нету в этих скриптах сам pptp не плохо всё это делает за вас

#154538
Kettler написал:
сам pptp не плохо всё это делает за вас

как?

#154544

Щас нет подрукой как ток ну эт в понедельник покажу. Грубо говоря есть параметр который пингует если нет ответа он сам реконектит

#154546

Давно уже дома перешол на l2tp но вот думаю вернуть на pptp кто не знает есть проэкт accel pptp
http://help.ubuntu.ru/wiki/accel-pptp

#154553
Kettler написал:
Щас нет подрукой как ток ну эт в понедельник покажу. Грубо говоря есть параметр который пингует если нет ответа он сам реконектит

дык а в чём разница?

#154566
Kettler написал:
Грубо говоря есть параметр который пингует если нет ответа он сам реконектит

Надеюсь вы не про lcp echo-request, т.к. это совершенно не то. Если вдруг и правда есть такой параметр - было-бы интересно на него посмотреть, потому как в манах что-то ничего подобного не вижу.

Войдите или зарегистрируйтесь, чтобы ответить.