Open VPN starten/stoppen mittels Bash Skript

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Open VPN starten/stoppen mittels Bash Skript

      Hi Leute,

      ich bin ein totaler Neuling was das Bash-Skript-schreiben betrifft und bräuchte deswegen mal eure Hilfe. Für einige von euch ist das vermutlich eine Sekundenaufgabe.
      Also: Ich würde gerne von meinem Ubuntu-Rechner aus, den OpenVPN-Service auf der VU+ starten und stoppen.
      Da käme vermutlich am ehesten ein Bash-Skript infrage, dass ich auführbar mache und einfach am Desktop oder von wo auch immer starte.

      Idealerweise sollte das Skript prüfen, ob OpenVPN verbunden ist und dann deaktivieren, und andersherum.
      Der Name des Nutzers (root) und des Passworts sollte dabei auch im Skript integriert sein, sodass keine Eingabe erforderlich ist.

      Ich habe keine Probleme und weiß wie ich mich mit Telnet mit der VU+ über das Linux-Terminal verbinde (telnet 192.168.178.31) und den OpenVPN-Service von Hand starte:
      /etc/init.d/openvpn start
      /etc/init.d/openvpn stop


      Was richtig cool wäre, wenn dabei gar kein Konsolen-Fenster öffnet, sondern das Skript ausgeführt wird und vlt. einfach nur meldet: "OpenVPN war aktiv, OpenVPN wurde gestoppt."

      Aber ich will auch niemandem zu viel Arbeit machen.


      Nun würde ich mich freuen, wenn mir dabei jemand helfen kann, dieses vermutlich einfache Skript zu generieren.

      Ich danke euch für eure Hilfe.

      Drueckeberger
      :337:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Drueckeberger ()

    • Danke für den Tipp.
      Ich kriege es jetzt schon einmal hin das Skript auszuführen und OpenVPN entweder zu starten oder zu stoppen.

      Shell-Script

      1. #!/bin/sh
      2. echo "Stoppe OpenVPN"
      3. ssh root@192.168.178.31 /etc/init.d/openvpn stop
      4. echo "OpenVPN gestoppt!"
      Gibt es einen Befehl um den Status von OpenVPN auszulesen?
      Dann könnte ich mir eine schöne Wenn-Funktion basteln und starten, wenn OpenVPN ist aus und andersherum.

      Danke für die Hilfe.
    • Du kannst den openvpn Prozess suchen, z.B. so:

      Shell-Script

      1. #!/bin/sh
      2. if [ -n "`ps ax | grep open[v]pn`" ]; then
      3. echo running
      4. else
      5. echo not running
      6. fi

      Es ist allerdings sauberer, wenn man den Status über openvpn up/down Skripte z.B. in einem LOCK-File erstellt bzw. löscht.
    • Danke für die Hilfe.
      Ich habe es jetzt über "ip route show" gelöst.
      Sicher nicht sauber, aber es läuft perfekt und ich habe meine ersten Skript-Schritte gelernt.

      :happy3:

      Shell-Script

      1. #!/bin/bash
      2. echo "Überprüfe OpenVPN-Status..."
      3. iprouteshow=$(ssh root@192.168.178.31 /sbin/ip route show)
      4. iprouteshort=${iprouteshow:0:1}
      5. echo $iprouteshow
      6. if [ $iprouteshort = 0 ]; then
      7. echo "OpenVPN ist aktiv"
      8. ssh root@192.168.178.31 /etc/init.d/openvpn stop
      9. echo "OpenVPN wurde gestoppt!"
      10. else
      11. echo "OpenVPN ist nicht aktiv"
      12. ssh root@192.168.178.31 /etc/init.d/openvpn start
      13. echo "OpenVPN wurde gestartet!"
      14. fi
      15. sleep 1
      16. echo "Fenster schließt in 3 Sekunden"
      17. sleep 1
      18. echo "Fenster schließt in 2 Sekunden"
      19. sleep 1
      20. echo "Fenster schließt in 1 Sekunden"
      21. sleep 1
      22. kill $PPID
      Alles anzeigen