Цикл скриптов: kubuntu vpn script-like connection

Powered by GeSHi

#! /bin/sh

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin

case "$1" in
start)
 if ifconfig|grep ppp >/dev/null;
  then
   echo "Already started"
   ifconfig|grep -A6 ppp;
  else
   if ps aux|grep ppp|grep -v grep >/dev/null;
    then killall -qg pppd;
   fi

   if ps aux|grep pptp|grep -v grep >/dev/null;
    then killall -qg pptp >/dev/null;
   fi

   pppd call $2
   echo -n "Connecting... "
   until ifconfig|grep ppp >/dev/null; do sleep 1;done
   echo "ok"

 fi
 ;;

stop)
 ifconfig ppp0 down >/dev/null 2>/dev/null
 /etc/ppp/ip-down
 killall -qg pppd >/dev/null
 killall -qg pptp >/dev/null
 ;;

status)
        if ifconfig|grep ppp >/dev/null;
  then ifconfig|grep -A6 ppp;
  else echo "ppp is down"
 fi
 ;;

restart)
       if ifconfig|grep ppp0 >/dev/null;
                then
   echo "Stopping ppp interface"
   /etc/ppp/ip-down
   killall -qg pppd >/dev/null
   killall -qg pptp >/dev/null;
        fi
        pppd call $2
 echo -n "Connecting... "
 until ifconfig|grep ppp >/dev/null; do sleep 1;done
 echo "ok"
        ;;

automate)
 clear
 if ifconfig|grep ppp >/dev/null;
  then
   echo "Already started"
   clear
   echo "Running..."
   ifconfig|grep ppp
   while ifconfig|grep ppp >/dev/null;
    do
     TEMPOS=$(ifconfig|grep -A6 ppp|grep --color=no "RX bytes")
     echo -ne "$TEMPOS \r"
     sleep 1;
    done
   echo "Restarting..."
   /etc/init.d/networking automate $2;
  else
   if ps aux|grep ppp|grep -v grep >/dev/null;
    then killall -qg pppd;
   fi

   if ps aux|grep pptp|grep -v grep >/dev/null;
    then killall -qg pptp >/dev/null;
   fi

   /etc/ppp/ip-down
   pppd call $2
   echo "Connecting..."
   until ifconfig|grep ppp >/dev/null; do sleep 1;done
   echo "ok"
   clear
   echo "Running..."
   while ifconfig|grep ppp >/dev/null;
    do
     TEMPOS=$(ifconfig|grep -A6 ppp|grep --color=no "RX bytes")
     echo -ne "$TEMPOS \r"
     sleep 1;
    done
   echo "Restarting..."
   /etc/init.d/networking.ppp automate $2;
 fi
 ;;

*)
 if ifconfig|grep ppp >/dev/null;
  then
   echo "ppp is up"
   ifconfig|grep -A6 ppp;
  else echo "ppp is down";
 fi
 echo "Usage: /etc/init.d/networking {start|stop|restart|automat}"
 ;;
esac
exit 0
если скрипт назвать ppp.sh , то... Сам VPN уже должен быть настроен(т.е. написаны /etc/ppp/chap-secrets, /etc/ppp/peers/ppname) Кроме того НЕОБХОДИМО правильно настроить /etc/ppp/ip-up.local и /etc/ppp/ip-down.local, так что бы все нужные роуты прописывались при подключении/отключении возможные команды инициация ppp-подключния с именем ppname:
ppp.sh start ppname
отключить все ppp подключения:
ppp.sh stop
отключить все ppp подключения и подключается к ppname
ppp.sh restart ppname
показать статус ppp подключений
ppp.sh status
инициация ppp-подключния с именем ppname, и дальнейший мониторинг трафика и рестарт подключения при обрыве связи (иногда работает некорректно). И еще, к сожалению работает только если сам скрипт лежит в /etc/init.d/ppp.sh Так что правте так как вам будет удобно:
ppp.sh automate ppname
P.S. Не забудьте сделать файл исполняемым