Erweitern der Dokumentation

This commit is contained in:
Tim Schilling | IuK
2024-12-03 08:12:22 +01:00
parent 0f4035341a
commit 1d517cefca
4 changed files with 64 additions and 28 deletions
+31 -18
View File
@@ -1,14 +1,16 @@
#!/bin/bash
# ---------------------------------------------------------------------------------------------------------------------
# Festlegen von diversen Variablen
# Konfigurationsvariablen
MOUNT_POINT="./webdav/"
DOCKER_HOST="kitl-v-lx-dock.kitl.bayern"
SFTP_HOST1=$DOCKER_HOST
MOUNT_POINT="./webdav/" #Ort wod die Webdav Freigabe eingehängt werden soll
DOCKER_HOST="kitl-v-lx-dock.kitl.bayern" #IP oder Hostname wo der Docker Container Läuft
SFTP_HOST1=$DOCKER_HOST #IP oder Hostname von dem Host von welchem die Datein geladen werden sollen, meist gleich zu Docker Host
# Nutzerdaten
DOCKER_USER="kitl"
SFTP_USER1=$DOCKER_USER
DOCKER_USER="kitl" #Name des Nutzers für den Dockerhost
SFTP_USER1=$DOCKER_USER #Name des Nutzers für den SFTPhost, meist gleich zu Docker
# Farben für die Ausgabe
@@ -16,16 +18,20 @@ GREEN="\033[0;32m"
RED="\033[0;31m"
NC="\033[0m" # Keine Farbe
# Funktion zur Ausgabe von Meldungen
# ----------------------------------------------------------------------------------------------------------------------
# Festlegen von Funktionen
# Funktion zur Ausgabe von log Meldungen
function log() {
echo -e "${GREEN}[INFO] $1${NC}"
}
# Funktion zur Ausgabe von error Meldungen
function error() {
echo -e "${RED}[ERROR] $1${NC}"
}
# Funktion für das Starten des Speziefischen Docker Containers
function dockerremote(){
#Enrichten von Variablen für Funktion
REMOTE_HOST=$1
@@ -46,10 +52,9 @@ function dockerremote(){
ssh "$REMOTE_USER@$REMOTE_HOST" "while docker ps --filter name=$CONTAINER_NAME --filter status=running --quiet > /dev/null; do sleep 1; done"
log "Der Container ist Gestoppt mache weiter"
REMOTE_HOST=""
REMOTE_USER=""
}
# Funktion zum Herunterladen der Datein im angegebenen Verzeichniss
function sftptransfer(){
#Einrichten der Variablen für Funktion
REMOTE_USER=$1
@@ -57,9 +62,11 @@ function sftptransfer(){
REMOTE_DIR=$3
LOCAL_DIR="./temp"
# Prüfung das Localdir auch Existiert bevor
log "Sicherstellen das $LOCAL_DIR existiert"
mkdir -p "$LOCAL_DIR"
# Anmelden über SFTP und Herunterladen der Datein
log "Lade Datein von $REMOTE_DIR herunter"
sftp "$REMOTE_USER"@"$REMOTE_HOST" << EOF
cd $REMOTE_DIR
@@ -69,10 +76,10 @@ function sftptransfer(){
EOF
log "Datein Heruntergeladen"
REMOTE_HOST=""
REMOTE_USER=""
}
# ---------------------------------------------------------------------------------------------
# Begin des Eigentlichen Scripts
# Sicherstellen, dass das Skript als root ausgeführt wird
if [[ $EUID -ne 0 ]]; then
@@ -86,6 +93,13 @@ log "Erstelle den Mount-Punkt $MOUNT_POINT..."
mkdir -p "$MOUNT_POINT"
chmod 755 "$MOUNT_POINT"
# Starten von Docker Container
dockerremote "$DOCKER_USER" "$DOCKER_HOST" "bw-export-iuk"
# Holen der Datein welche durch Docker Container Erstellt wurden
sftptransfer "$SFTP_USER1" "$SFTP_HOST1" "/sftpuser/export/data/"
# WebDAV-Freigabe mounten
log "Mounten der WebDAV-Freigabe nach $MOUNT_POINT..."
rclone mount webdav: "$MOUNT_POINT" --daemon --allow-other --umask 002 || {
@@ -95,14 +109,11 @@ rclone mount webdav: "$MOUNT_POINT" --daemon --allow-other --umask 002 || {
log "WebDAV-Freigabe erfolgreich gemountet."
# Leeren des Kommsafe Ordners von Alten Backups
rm -rf $MOUNT_POINT
dockerremote "$DOCKER_USER" "$DOCKER_HOST" "bw-export-iuk"
rm -rf ./webdav/
sftptransfer "$SFTP_USER1" "$SFTP_HOST1" "/sftpuser/export/data/"
mv ./temp/* ./webdav/
# Übertragen der Aktuellen Backups nach Komsafe
mv ./temp/* $MOUNT_POINT
# Webdav Unmounten
@@ -112,3 +123,5 @@ if mountpoint -q "$MOUNT_POINT"; then
else
log "Der Mount-Punkt ist bereits unmountet."
fi
log "Backup der Datein erfolgreich ausgeführt"