traller
Goto Top

Backup-Script hängt an OpenVPN

Hallo,
ich möchte unter Ubuntu ein Script zum Backup einrichten. Das Script sieht momentan so aus:
#!/bin/bash
mount /dev/sda1 /media/ordner/
openvpn /home/test/config.ovpn
datum=$(date +%F-%H%M)
echo $datum
momentan "hängt" es an OpenVPN. OpenVPN baut eine Verbindung zum Server auf, schließt die Sitzung aber nicht und dementsprechend läuft das Script nicht weiter. Wie bekomme ich diesen "Hänger" von OpenVPN in den Gruiff, so dass das Script weiter laufen kann?

Content-ID: 251007

Url: https://administrator.de/contentid/251007

Ausgedruckt am: 25.11.2024 um 08:11 Uhr

Pjordorf
Pjordorf 06.10.2014 um 00:50:54 Uhr
Goto Top
Hallo,

Zitat von @traller:
killall openvpn
oder besser http://serverfault.com/questions/167272/openvpn-disconnect-via-command- ... normal beenden.

Gruß,
Peter
traller
traller 06.10.2014 aktualisiert um 00:55:34 Uhr
Goto Top
Zitat von @Pjordorf:

Hallo,

> Zitat von @traller:
killall openvpn
oder besser http://serverfault.com/questions/167272/openvpn-disconnect-via-command- ... normal beenden.

Gruß,
Peter

ich will doch gar nicht disconnecten, jedenfalls in diesem Schritt nicht :D
die verbindung muss irgendwie in den Hintergrund oder wie man das nennt, ich muss über diese Verbindung ja erst die Daten ziehen ...
dr-manny
dr-manny 06.10.2014 um 04:24:10 Uhr
Goto Top
Hi,

normalerweise liegt in /etc/init.d/ ein script, welches "openvpn" heißt. Dort kannst du unter "CONFIG_DIR=/etc/openvpn" das verzeichnis ändern, in welchem deine config liegt (bei dir "CONFIG_DIR=/home/test", wichtig hier: nur das übergeordnete Verzeichnis nicht die Config Datei an sich!). Mit "/etc/init.d/openvpn start" kannst du den Dienst dann starten (also statt "openvpn /home/test/config.openvpn" schreibst du "/etc/init.d/openvpn start" in dein Script). Mit den Parametern "stop" und "restart" kannst du den Dienst wieder stoppen oder neustarten.

LG
dr-manny
Lochkartenstanzer
Lochkartenstanzer 06.10.2014 um 07:43:02 Uhr
Goto Top
Moin

Villeicht mal einfach
openvpn --help
oder
man openvpn 
probieren.

dann sieht man u.a. die Option:
--daemon [name] : Become a daemon after initialization.


Oder du schickst openVPN mit & in den UnterHintergrund. face-smile

lks
traller
traller 06.10.2014 aktualisiert um 11:53:44 Uhr
Goto Top
Zitat von @Lochkartenstanzer:

dann sieht man u.a. die Option:
> --daemon [name] : Become a daemon after initialization.
> 
perfekt, danke.
Dann kann ich die Verbindung auch mit
ifconfig tun0 down
wieder schließen.

Doofe Anfänger Frage:
ich möchte folgendes "verwirklichen":
tolle-varibale=test
echo $tolle-variable
mkdir '$tolle-variable'-ordner  
das funktioniert wegen dem "-" nicht, wie muss das geklammert oder sonst was werden?
colinardo
Lösung colinardo 06.10.2014 aktualisiert um 16:12:11 Uhr
Goto Top
Zitat von @traller:
Doofe Anfänger Frage:
das funktioniert wegen dem "-" nicht, wie muss das geklammert oder sonst was werden?
mkdir "${tolle-variable}-ordner"
Grüße Uwe
traller
traller 08.10.2014 um 13:23:57 Uhr
Goto Top
Hallo,
so weit funktioniert das, wenn ich die Verbindung mit "ifconfig tun1 down" beende, wird der Adapter tun1 immer noch bei ifconfig gelistet. Wie bekomme ich den da raus?
Lochkartenstanzer
Lochkartenstanzer 08.10.2014 um 13:26:52 Uhr
Goto Top
killall openvpn?

Oder Du merkst Dir die pid und killst nur den einen openvpn-Prozess.

lks
Pjordorf
Pjordorf 08.10.2014 um 13:30:02 Uhr
Goto Top
Hallo,

Zitat von @traller:
Wie bekomme ich den da raus?
?!? Du willst den "deinstallieren"?
Was liefert ein ifconfig -a denn aus?

Gruß,
Peter
traller
traller 08.10.2014 aktualisiert um 14:02:06 Uhr
Goto Top
Zitat von @Lochkartenstanzer:

killall openvpn?

Oder Du merkst Dir die pid und killst nur den einen openvpn-Prozess.

lks

das wäre auch eine Möglichkeit, aber die PID ändert sich doch immer oder? Kann man die beim Ausführen festlegen? Problematisch ist nämlich, dass ein weiterer OpenVPN-Adapter mit tun0 existiert, und der soll weiter hin existieren. Ich will halt mit einem Script tun1 immer verbinden und trennen. Wenn ich nun den "down" mache, hängt der mir unzählige tunX Adapter dran, und damit kann ich dann nicht mehr arbeiten ...

Zitat von @Pjordorf:

Hallo,

> Zitat von @traller:
> Wie bekomme ich den da raus?
?!? Du willst den "deinstallieren"?
Was liefert ein ifconfig -a denn aus?

Gruß,
Peter

da existiert der tun1 noch, aber unverbunden. OpenVPN erstellt wohl immer einen neuen tunX hinten dran ...
Angezeigt werden halt eth0, lo, tun0 (gekürzt) und tun1.
tun0      Link encap:UNSPEC  Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
         

tun1      Link encap:UNSPEC  Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1500  Metrik:1
          RX packets:206278 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36390 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:100
Wenn ich in diesem Stadium wieder ein "openvpn --daemon" durchlaufen lasse, kommt ein weiterer tun2 hinzu, und das will ich nicht ...
traller
traller 08.10.2014 um 15:56:14 Uhr
Goto Top
wie kann ich diesen Befehl hier so verschachteln, dass mir die PID raus geworfen wird?
test=$(ps aux | grep "openvpn --config vpn.conf --daemon" | awk -F '      ''{print $2' | tr -d ' ')  
Sprich, er soll nach dem Prozess "openvpn --config vpn.conf --daemon" und mir die PID raussuchen, dann könnte man das ja mit "kill $test" beenden.
colinardo
Lösung colinardo 08.10.2014 aktualisiert um 16:47:14 Uhr
Goto Top
Sprich, er soll nach dem Prozess "openvpn --config vpn.conf --daemon" und mir die PID raussuchen
kill $(ps aux | grep "[o]penvpn --config vpn\.conf --daemon" | head -n 1 | awk '{print $2}')
Hinweis: Das [o] wird benötigt damit das gerade ausgeführte grep in der Prozessliste nicht gematcht wird [o]penvpn ist ja ein Regex das nach o gefolgt von penvpn sucht und nicht nach dem Literal [o]penvpn mit den eckigen Klammern.

Andere Variante ist es die PID des gestarteten openvpn-Prozesses sofort nach dem Starten von OpenVPN in einer Variablen zu speichern:
openvpn /home/test/config.ovpn 
openvpn_pid=$!
..
....
kill $openvpn_pid

und dann gibts da noch den Shell-Befehl pidof face-wink

usw.

Grüße Uwe