PDA

View Full Version : Помогите, сил моих уже нет! Как выполнить скрипт после установки l2tp соединения?


LBertone
13-08-2008, 19:03
Вот ведь чудеса! L2TP настраивался через Web-морду, меняю символическую сцелку /tmp/ppp/ip-up с /sbin/rc (нах оно pppd вообще х проссышь) на свой скрипт /opt/bin/ddns. Внутри ddns:

echo $* > /opt/test

Если запускать из командной строки - все нормально, аргументы передаются. А pppd его даже не дергает. К тому же, при такой настройке не пишется default route (и, по-моему, SNAT в iptables) и, как следствие, не работает vpn.

Крендеец...

djet
13-08-2008, 21:12
У меня прописано в Additional pppd options: ip-up-script /usr/local/sbin/ppp0-ip-up ip-down-script /usr/local/sbin/ppp0-ip-down, и всё работает.

LBertone
14-08-2008, 01:01
У меня прописано в Additional pppd options: ip-up-script /usr/local/sbin/ppp0-ip-up ip-down-script /usr/local/sbin/ppp0-ip-down, и всё работает.Друг! Спасибо, ты натолкнул меня на мысль. Я как раз и делал как ты сказал, вот только путь к скрипту был /opt/bin/ddns. Скажем так, я был удивлен тому, что на момент вызова ppp флешка еще не примонтирована :). К слову, нужно не забыть указать в своем скрипте родной:/tmp/ppp/ip-up $*Иначе работать не хочет.

Кстати, не совсем ясно. В том случае, если vpn запускается первый раз (при загрузке роутера), то непонятно по каким причинам запись DNS не обновляется. Подзреваю, что чего-то на тот момент еще нет. Попытался задержать выполнение командой sleep, но пока не к чему не пришел. В итоге повесил на cron задание - каждую минуту. Криво, согласен, но как иначе - пока не придумал. Так этот гондурас еще в лог безбожно срет...

Arcady
14-08-2008, 08:44
Кстати, не совсем ясно. В том случае, если vpn запускается первый раз (при загрузке роутера), то непонятно по каким причинам запись DNS не обновляется. Подзреваю, что чего-то на тот момент еще нет. Попытался задержать выполнение командой sleep, но пока не к чему не пришел. В итоге повесил на cron задание - каждую минуту. Криво, согласен, но как иначе - пока не придумал. Так этот гондурас еще в лог безбожно срет...


Просто надо дождаться монтирования:
i=0
while [ $i -le 30 ]
do
if [ -f /opt/bin/ddns ]
then
break
fi
sleep 1
i=`expr $i + 1`
done

/opt/bin/ddns