PrivateMember
New Member
Hallo zusammen,
hier noch ein kleines Script für den ein oder anderen.
Ab und an werden die Config-Files von PP ja aktualisiert, daraufhin lädt man sich diese erneut herunter, schreibt mindestens die Zeile neu, welche auf die Datei mit den Credentials verweist und kopiert sich anschließend die neuen Dateien an die korrekte Stelle.
Mit diesem Script erspart ihr euch die o.g. Arbeit:
Anpassungen:
Typisches vorgehen wieder:
Bei Fragen einfach wieder fragen.
Zur Sicherheit könnt ihr euch vor dem ersten Test ja die produktiven Configs wegsichern.
Nach Scriptausführung wird selbstverständlich wieder automatisch aufgeräumt.
hier noch ein kleines Script für den ein oder anderen.
Ab und an werden die Config-Files von PP ja aktualisiert, daraufhin lädt man sich diese erneut herunter, schreibt mindestens die Zeile neu, welche auf die Datei mit den Credentials verweist und kopiert sich anschließend die neuen Dateien an die korrekte Stelle.
Mit diesem Script erspart ihr euch die o.g. Arbeit:
Bash:
#!/bin/bash
#
### Variablen deklarieren ###
#
# Pfad zu den produktiven Configs (Angabe OHNE '/' am Ende)
conf_path=/etc/openvpn
#
# Downloadpfad zu den gewünschten Config-Files
dl_link_conf=https://www.perfect-privacy.com/downloads/openvpn/get?system=linux
#
### ENDE Variablen deklarieren ###
### HAUPTPROGRAMM ###
# Arbeitsverzeichnis anlegen
mkdir "$conf_path"'/'"temp_dir"
# Download der Konfigurationen in das neu angelegte Verzeichnis
wget -P "$conf_path"'/'"temp_dir" --content-disposition $dl_link_conf
# Dateinamen der heruntergeladenen Datei ermitteln und als Variable sichern
arc_name=$(ls -t "$conf_path"'/'"temp_dir")
# Entpacken der heruntergeladenen Datei
unzip -j "$conf_path"'/'"temp_dir"'/'"$arc_name" -d "$conf_path"'/'"temp_dir"
# Nach saemtlichen Configs suchen, welche momentan verwendet werden und diese in ein Array speichern
mapfile -t used_servers < <(ls -1 "$conf_path"'/'*.conf | sed 's/,//g' | rev | cut -d '/' -f 1 | rev)
# Auslesen eines Conf-Files, um den Pfad zur Passwort-Datei zu ermitteln
cur_pwd_path=$(grep -m 1 auth-user-pass "$conf_path"'/'"${used_servers[0]}")
# Hinzufügen des Auth-Datei-Pfads zu den neuen Dateien
find "$conf_path"'/'"temp_dir"'/'*.conf -type f -exec sed -i "/auth-user-pass/c $cur_pwd_path" {} \;
##### BEI BEDARF -> Hinzufuegen weiterer Parameter (z.B. MTU-Size) #####
##############################################################################################
# Hinzufügen der MTU-Anpassung zu den neuen Dateien (mssfix) #
# find "$conf_path"'/'"temp_dir"'/'*.conf -type f -exec sed -i "/mssfix/c mssfix 1412" {} \; #
##############################################################################################
# loeschen der bisher produktiven Dateien
rm -r "$conf_path"'/'*.conf
# Anzahl der verwendeten Configs zaehlen
used_servers_count="${#used_servers[@]}"
# Die verwendeten Configs in das produktive Verzeichnis kopieren
for (( i=0; i<used_servers_count; i++ ))
do
cp "$conf_path"'/'"temp_dir"'/'"${used_servers[i]}" "$conf_path"
done
# Aufraeumen (Arbeitsverzeichnis loeschen)
rm -r "$conf_path"'/'"temp_dir"
Anpassungen:
- die Variablendeklaration befindet sich im Kopf des Scripts
- das Verzeichnis zu den produktiven Configs hinter 'conf_path=' angeben
- den Pfad zur gewünschten zip-Datei hinter 'dl_link_conf=' angeben
Typisches vorgehen wieder:
- den Code als Datei (z.B. upd_conf.sh) auf dem System speichern (z.B. im home-Dir des Nutzers)
- Datei ausführbar machen: sudo chmod +x "DATEINAME" (ohne die ")
- Datei mit erw. Rechten ausführen: sudo ./"DATEINAME" (ohne die ")
Bei Fragen einfach wieder fragen.
Zur Sicherheit könnt ihr euch vor dem ersten Test ja die produktiven Configs wegsichern.
Nach Scriptausführung wird selbstverständlich wieder automatisch aufgeräumt.
Last edited: