Originally Posted by
perpetum
И всё таки как же тогда должен выглядеть код в итоге (в сборе)?
Наверное так:
/usr/local/sbin/ping.sh
Code:
#!/bin/sh
PINGADDRESS='www.google.ru'
while true ; do
sleep 15m #интервал между итерациями - в данном случае, 15 минут
if ! ping -c 3 -q "$PINGADDRESS" > /dev/null 2>&1 ; then
killall -SIGHUP pppd
# Предыдущая строчка вызовет переподключение только PPTP (не знаю насчёт L2TP).
# Если нужно переподключить ещё и локалку провайдера, закомментируйте ту строчку
# и раскомментируйте следующую:
#/usr/local/sbin/connector connect
exit
fi
done
/usr/local/sbin/connector
Code:
#!/bin/sh
case $1 in
connect)
service="wan_connect"
;;
disconnect)
service="wan_disconnect"
;;
*)
echo "Usage: $(basename $0) connect|disconnect"
exit 1
;;
esac
let unit=1*$(nvram get wan_unit)
if [ $unit -lt 0 ]; then
unit=0
fi
nvram set rc_service="$service,$unit"
kill -SIGUSR1 1
sleep 2
Вызов ping.sh добавить в /usr/local/sbin/post-firewall:
Здесь ключевое слово - добавить, т.е. в нем уже должна быть минимум 1 строка #!/bin/sh
Code:
if [ "$2" != "0.0.0.0" ] ; then
/usr/local/sbin/ping.sh >/dev/null 2>&1 &
fi