Fritzbox vpn-routing

Ich habe nun auch mal das Script selber in die debug.cfg geschrieben.
Hier wird nun auch die Verbindung 1malig aufgebaut, aber irgendwie läuft das Script nicht weiter.

Code:
count=0 #Zaehler wie oft Ping versucht wird bis openvpn restart
rebootcount=0 #Zaehler bis die Box neu gestartet wird
while  true; do
count=$(( $count + 1 ))
echo "Durchlauf $count"
   if !(ping -c 1 10.8.0.1 > /dev/null ); #pruefe ob vpn verbindung nicht steht
   then
         if [ "$count"  = "5" ];
         then

             if !(ping -c 1 xx.xx.xx.xx > /dev/null ); # xx.xx.xx.xx ist die öffentliche IP des VPN-Servers
             then
             route del default dev dsl
             route add -host xx.xx.xx.xx dev dsl
             route add -host 62.242.234.100 dev dsl
             dsld -s
             sleep 3
             dsld
             fi

         sleep 5
         /var/media/ftp/Dokumente/startup.sh
         echo -n "Schlafe 20 Sekunden"
         sleep 20
         rebootcount=$(( $rebootcount + 1 ))
         count=$(( $count - 1 )) # normaler Counter wird wieder heruntergezaehlt
         echo -n "Zaehler Count $count"
         fi

         if [ "$rebootcount" = "6" ];
         then
         /sbin/reboot
         fi

         echo -n "Zaehler Reboot $rebootcount"

   fi

    if (ping -c 1 10.8.0.1 > /dev/null ); # Wenn VPN verbunden ist, dann nichts tun außer warten
    then
    sleep 30
    count=0
    rebootcount=0
    echo "Alles OK"
    fi

done &

Habe ich da noch einen Denkfehler?
Kannst du damit was anfangen, sonst erkläre ich den Code noch weiter.

Vielen Dank.

Tobias
 
Ohne jetzt den Code komplett "durchdrungen" zu haben, es fehlt die "Klammerung" der kompletten while Schleife. Die ganze Schleife muss in den Hintergrund, deshalb:
Code:
( while true; do 
   ...
done) &
 
das habe ich nun geändert.

Nach dem Reboot kam die VPN-Verb. auch zu stande.
Also ich dann aber manuell den DSL-Diest stoppte um zu prüfen, ob er wieder über mein Script gestartet wird, stellte ich fest das es leider nicht der Fall ist.
Irgendwie hab ich das gefühl, das das Script nichts mehr tut.
Wenn ich es manuell starte sehe ich meine debug-Ausgaben und auch das Interface wird wieder gestartet.
 
Läuft es denn (ps) ?
Du könntest die Ausgaben ja mal in eine Datei schreiben lassen (echo "was auch immer" >> /var/tmp/meineausgabe.txt) und die dann lesen.
 
Dadurch, das ich nun das komplette Script in die debug.cfg geschrieben habe, kann ich nicht sehen ob es läuft.
Ich habe es jetzt nochmal über die debug.cfg
Code:
(/var/media/ftp/Dokumente/vpn_check.sh >> /var/tmp/vpn.txt ) &
starten lassen und sehe leider dass es nach dem 5 Durchlauf leider nicht weiter ausgeführt wird.
Dies gilt aber immer nur wenn es über debug.cfg gestartet wird.
 
Das dürfte irgendwie an deinem Skript liegen, vermute ich?
So ganz klar ist mir das noch nicht: Ohne Pause wird 5 mal geprüft, ob die Gegenseite zu pingen ist, dann geht es in den if-Teil, dort wird der Zähler um 1 zurücksetzt usw?!?
Ich vermute mal, irgendwie wird "count" größer als 5 und da nur auf Gleichheit abfragst...

Aber: wenn es läuft, müssten die sleeps zu sehen sein.
Und natürlich kann man auch aus der debug.cfg was in eine Datei schreiben:
Code:
root@fritz:/var/mod/root# cat /var/flash/debug.cfg 
count=0
(while true; do
echo "$(date): count=$count" >> /var/tmp/out.txt
sleep 30
count=$(( $count +1 ))
done) &
root@fritz:/var/mod/root# cat /var/tmp/out.txt 
Sat Jan  1 01:00:43 CET 2000: count=0
Sat Jan  1 01:01:13 CET 2000: count=1
Sat Jan  1 01:01:43 CET 2000: count=2
Sat Jan  1 01:02:13 CET 2000: count=3
Sat Jan  1 01:02:43 CET 2000: count=4
Sat Jan  1 01:03:13 CET 2000: count=5
Sat Jan  1 01:03:43 CET 2000: count=6
root@fritz:/var/mod/root# 
root@fritz:/var/mod/root# ps | grep sl[e]ep
 1482 root      1124 S    {busybox} sleep 30
root@fritz:/var/mod/root#
 
Hallo Jörg,

vielen Dank.
Es lag wohl tatsächlich an meinem Code.
Ich werde mein Script (was nun im Hintergrund läuft) ausgiebig testen und ggfls. wenn es funktioniert hier einstellen.

Vielen Dank für deine Hilfe.

Tobias
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.