#!/bin/bash # Überprüfen, ob ein Parameter übergeben wurde if [ -z "$1" ]; then echo "Bitte geben Sie eine Nummer als Argument an. Beispiel: $0 123" exit 1 fi # Definieren Sie die Verbindungsdetails server="appdb02.in.easyname.com" LUSER="${LUSER:?Bitte LUSER setzen!}" # Setzen Sie hier Ihren Benutzernamen ein, wenn LUSER nicht als Umgebungsvariable gesetzt ist # Remote-Directory überprüfen und Subdirectories auflisten, unter Verwendung von bash remoteDirectories=$(ssh "$LUSER@$server" "bash -c 'ls -d /Apps/easyname/run/pinc*/*/'") # Wenn keine Verzeichnisse gefunden wurden, Skript beenden if [ -z "$remoteDirectories" ]; then echo "Keine Subdirectories in /Apps/easyname/run/pinc/ gefunden." exit 1 fi localSavePath="$PWD/$1" # Setzt den lokalen Speicherpfad relativ zum aktuellen Verzeichnis filePattern="$1-*" # Schleife über die gefundenen Verzeichnisse und in jedem Verzeichnis nach Dateien suchen fileList="" for dir in $remoteDirectories; do # Suche in jedem Verzeichnis nach Dateien mit dem angegebenen Muster filesInDir=$(ssh "$LUSER@$server" "bash -c 'find $dir -type f -name \"$filePattern\"'") fileList="$fileList $filesInDir" done # Prüfen, ob der Befehl erfolgreich ausgeführt wurde if [ -z "$fileList" ]; then echo "Fehler beim Ausführen des SSH-Befehls auf dem Remote-Server $server oder keine Dateien gefunden." exit 1 fi # Überprüfen, ob Dateien gefunden wurden if [ -z "$fileList" ]; then echo "Keine Dateien gefunden, die mit dem Muster $filePattern beginnen." exit 0 fi # Prüfen, ob das lokale Speicherverzeichnis existiert, und falls nicht, erstellen if [ ! -d "$localSavePath" ]; then echo "Das Verzeichnis $localSavePath existiert nicht. Erstelle es..." mkdir -p "$localSavePath" if [ $? -ne 0 ]; then echo "Fehler beim Erstellen des Verzeichnisses $localSavePath." exit 1 fi fi # Herunterladen der Dateien vom Remote-Server for file in $fileList; do scp "$LUSER@$server:$file" "$localSavePath/" if [ $? -ne 0 ]; then echo "Fehler beim Herunterladen der Datei $file." else echo "Datei $file erfolgreich heruntergeladen." fi done echo "Alle Dateien wurden im Verzeichnis $localSavePath gespeichert."