Hallo zusammen,
ich möchte mit einem script den openvpn Dienst (client Seite) neu starten wenn nach einer Zwangstrennung die Verbindung zum VPN-Server unterbrocken wurde. Das script sieht so aus:
#!/bin/sh # Skriptname : vpnrestart IP=10.8.0.1 ping -c 1 $IP while [ $? -ne 0 ] do sleep 10 /etc/init.d/openvpn restart ping -c 1 $IP done
Wenn ich das script unter dem Benutzer root ausführe, funktioniert es. (# sh /etc/vpnrestart.sh)
Dieses script habe ich in der crontab so eingetragen:
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin * * * * * root sh /etc/vpnrestart.sh
Mit dem Befehl trail -f /var/log/syslog
kann ich sehen das der cronjob jede Minute ausgeführt wird.
Ausgabe:
CRON[2833]: (root) CMD (sh /etc/vpnrestart.sh)
Wenn ich jetzt eine zweite Shell starte und dort den Befehl ping 10.8.0.1
absetze steht die Verbindung.
Nun trenne ich die Netzwerkverbindung (Stecker raus kurz warten Stecker rein).
Das script wird nach wie vor jede Minute ausgeführt. Allerdings wird openvpn nicht neu gestartet. Wenn ich das script von Hand starte wird openvpn neu gestartet und meine pings in der zweiten Shell kommen wieder beim VPN-Server an.
Versucht habe ich noch in der crontab den Befehl aus dem Wiki (Punkt Häufige Fehler) einzutragen, leider ohne Erfolg. einmal so:
* * * * * root /bin/bash --login /etc/vpnrestart.sh
einmal so:
* * * * * root /bin/bash --login sh /etc/vpnrestart.sh
Ich weiß mir keinen Rat mehr. Für eure Hilfe bin ich dankbar. Gruß
Bearbeitet von sebix:
Bitte verwende in Zukunft Codeblöcke, um die Übersicht im Forum zu verbessern!