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-Key: 251007

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

Printed on: April 25, 2024 at 07:04 o'clock

Member: Pjordorf
Pjordorf Oct 05, 2014 at 22:50:54 (UTC)
Goto Top
Hallo,

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

Gruß,
Peter
Member: traller
traller Oct 05, 2014 updated at 22:55:34 (UTC)
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 ...
Member: dr-manny
dr-manny Oct 06, 2014 at 02:24:10 (UTC)
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
Member: Lochkartenstanzer
Lochkartenstanzer Oct 06, 2014 at 05:43:02 (UTC)
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
Member: traller
traller Oct 06, 2014 updated at 09:53:44 (UTC)
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?
Member: colinardo
Solution colinardo Oct 06, 2014 updated at 14:12:11 (UTC)
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
Member: traller
traller Oct 08, 2014 at 11:23:57 (UTC)
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?
Member: Lochkartenstanzer
Lochkartenstanzer Oct 08, 2014 at 11:26:52 (UTC)
Goto Top
killall openvpn?

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

lks
Member: Pjordorf
Pjordorf Oct 08, 2014 at 11:30:02 (UTC)
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
Member: traller
traller Oct 08, 2014 updated at 12:02:06 (UTC)
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 ...
Member: traller
traller Oct 08, 2014 at 13:56:14 (UTC)
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.
Member: colinardo
Solution colinardo Oct 08, 2014 updated at 14:47:14 (UTC)
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