Script um verbindung zu OpenVPN Server aufzubauen
- wacken
- Geschlossen
- Erledigt
Hinweis: In dem Thema Script um verbindung zu OpenVPN Server aufzubauen gibt es 50 Antworten auf 6 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
-
-
Konqueror kennt in der Adresszeile #systemd.service für Manpages und info:<gewünschte-Info-Seite> für die enstprechenden Infoseiten (so vorhanden).
Ob das bei oS15 noch geht, weiß ich nicht. Leider wird ja konqueror nicht mehr weiterentwickelt.Die Manpages sind für sehr, sehr viele Kommandos vorhanden.
Sie sind immer die erste Anlaufstelle, wenn man etwas nicht weißt.Die Info-Seiten stellen das erste "Hypertext System" dar.
Fast so alt, wie die Manpages selbst. Aber leider sträflich vernachlässigt.
Wenn aber zu einem Befehl eine Info Seite vorhanden ist, so ist das die ultimative Hilfe.
Denn das ist dann die (fast vollständige) Referenz.
info <SomeCommand> und man <SomeCommand> sollte man immer probieren.Und weil wir grade dabei sind:
Für in die Shell eingebaute Kommandos gibt es help <SomeShellInternalCommand>
Um also Hilfe für das Bash- Konstrukt if.... zu erhalten, nimmt man help ifFür die Kommandos, die Sonderzeichen darstellen, quotet man das Kommando z.B.:
help "[[" -
Ich bin jetzt einen Schritt weiter, jedoch wird der mounten service nicht automatisch ausgeführt.
Mein Service-File:
Code[Unit] Description=Mounten nach VPN Verbindung After=openvpn.target [Service] Type=simple ExecStart= /home/User1/Schreibtisch/mounten.sh [Install] WantedBy=multi-user.target
Mein Shell-Skript:
Bash
Alles anzeigen#!/bin/bash #mount -a if ping -c 1 172.23.40.3 > /dev/null; then umount -l /home/User1/NAS00 umount -l /home/User1/NAS01 mount mount -T /home/User1/Schreibtisch/NAS.fstab -a exit 0; fi umount -l /home/User1/NAS00 umount -l /home/User1/NAS01 exit 0;
NAS.fstab enthält nur die Netzlaufwerke, kopiert aus der fstab-Datei.
Wenn ich
systemctl start mounten.service
ausführe, werden die Netzlaufwerke gemountet wie gewünscht, jedoch nicht, nach einem Systemstart oder wenn die Netzwerkverbindung getrennt wurde (hier werden Sie gar nicht unmountet). Den mounten-Service habe ich mit
systemctl enable mounten.service
aktiviert. -
-
und es genügt nicht nur die STDOUT Ausgabe umzuleiten.
Du musst auch STDERR umleiten ( 2>/dev/null oder 2>/pfad/zu/meinLog )Das möchtest du für jeden Befehl machen,
ODER z.B.
ein exec 2>/meinLog.out 1>/meinLog.err
Lies dazu help exec und man exec.
(Ja, manche Kommandos gibt es in einer internen und externen Variante)Du kannst das auch als User machen.
Die Dateien liegen dann in ~/.systemd -
Ja wird als root gemacht
-
und es genügt nicht nur die STDOUT Ausgabe umzuleiten.
Du musst auch STDERR umleiten ( 2>/dev/null oder 2>/pfad/zu/meinLog )Das möchtest du für jeden Befehl machen,
ODER z.B.
ein exec 2>/meinLog.out 1>/meinLog.err
Lies dazu help exec und man exec.
(Ja, manche Kommandos gibt es in einer internen und externen Variante)Du kannst das auch als User machen.
Die Dateien liegen dann in ~/.systemd
Ich habe das Skript angepasst, jedoch geht es immer noch nicht, es zeigt das selbe Verhalten wie zuvor auch.Bash
Alles anzeigen#!/bin/bash #mount -a if ping -c 1 172.23.40.3 2> /dev/null; then umount -l /home/User1/NAS00 2> /dev/null umount -l /home/User1/NAS01 2> /dev/null mount mount -T /home/User1/Schreibtisch/NAS.fstab -a 2> /dev/null exit 0; fi umount -l /home/User1/NAS00 2> /dev/null umount -l /home/User1/NAS01 2> /dev/null exit 0;
-
Als root:
sagt was?
Das systemd Script funktioniert???
-
Code
Alles anzeigenUser1@linux-k7nn:~> sudo systemctl status mounten.service [sudo] Passwort für root: ● mounten.service - Mounten nach VPN Verbindung Loaded: loaded (/etc/systemd/system/mounten.service; enabled; vendor preset: disabled) Active: inactive (dead) since So 2018-08-26 18:24:20 CEST; 25min ago Process: 4355 ExecStart=/home/User1/Schreibtisch/mounten.sh (code=exited, status=0/SUCCESS) Main PID: 4355 (code=exited, status=0/SUCCESS) Aug 26 18:24:16 linux-k7nn.suse systemd[1]: Started Mounten nach VPN Verbindung. Aug 26 18:24:16 linux-k7nn.suse mounten.sh[4355]: PING 172.23.40.3 (172.23.40.3) 56(84) bytes of data. Aug 26 18:24:16 linux-k7nn.suse mounten.sh[4355]: 64 bytes from 172.23.40.3: icmp_seq=1 ttl=64 time=38.4 ms Aug 26 18:24:16 linux-k7nn.suse mounten.sh[4355]: --- 172.23.40.3 ping statistics --- Aug 26 18:24:16 linux-k7nn.suse mounten.sh[4355]: 1 packets transmitted, 1 received, 0% packet loss, time 0ms Aug 26 18:24:16 linux-k7nn.suse mounten.sh[4355]: rtt min/avg/max/mdev = 38.444/38.444/38.444/0.000 ms
-
Nochmal das hier lesen:
und es genügt nicht nur die STDOUT Ausgabe umzuleiten.
Du musst auch STDERR umleiten ( 2>/dev/null oder 2>/pfad/zu/meinLog )Das möchtest du für jeden Befehl machen,
ODER z.B.
ein exec 2>/meinLog.out 1>/meinLog.err
Lies dazu help exec und man exec.
(Ja, manche Kommandos gibt es in einer internen und externen Variante)Du kannst das auch als User machen.
Die Dateien liegen dann in ~/.systemdDa steht nirgends "vor das > eine 2 setzen".
Und der Job wurde ausgeführt.
Sogar ohne Error.
Natürlich ist der Job danach tot.
Es ist ja ein Sript, das nur ein paar Befehle ausführt und dann endet, also stirbt.
Du willst wohl doch eher eine Schleife, die nach einem Schläfchen checkt, ob es nun wieder mounten muss, oder die Mounts noch gültig sind.