#!/bin/bash # Kundennummer eingeben while true; do echo "Bitte geben Sie eine Kundennummer ein:" read -p "Kundennummer: " customerNumber if [ -z "$customerNumber" ]; then echo "Kundennummer darf nicht leer sein." echo "" else break fi done # Server und LUSER definieren server="appdb02.in.easyname.com" LUSER="${LUSER:?Bitte LUSER setzen!}" # Setzen Sie hier Ihren Benutzernamen ein, wenn LUSER nicht als Umgebungsvariable gesetzt ist # Menu zur Auswahl des Remote-Directories while true; do echo "Bitte wählen Sie ein Projekt:" echo "1) pinc" echo "2) php-es-info" read -p "Ihre Auswahl (1 oder 2): " choice case $choice in 1) remoteDir="pinc" break ;; 2) remoteDir="php-es-info" break ;; *) echo "Ungültige Auswahl. Bitte wählen Sie 1 oder 2." echo "" ;; esac done # Remote-Directory überprüfen und Subdirectories auflisten, unter Verwendung von bash remoteDirectories=$(ssh "$LUSER@$server" "bash -c 'ls -d /Apps/easyname/run/${remoteDir}*/*/'") # Wenn keine Verzeichnisse gefunden wurden, Skript beenden if [ -z "$remoteDirectories" ]; then echo "Keine Subdirectories in /Apps/easyname/run/${remoteDir}/ gefunden." exit 1 fi localSavePath="$PWD/$customerNumber" # Setzt den lokalen Speicherpfad relativ zum aktuellen Verzeichnis filePattern="$customerNumber*.eml" # 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 (mit Nummernpräfix gegen Überschreiben gleicher Namen aus verschiedenen Unterordnern) counter=1 for file in $fileList; do basename=$(basename "$file") localFile="${localSavePath}/${counter}_${basename}" scp "$LUSER@$server:$file" "$localFile" if [ $? -ne 0 ]; then echo "Fehler beim Herunterladen der Datei $file." else echo "Datei $file erfolgreich heruntergeladen als ${counter}_${basename}." fi ((counter++)) done echo "Alle Dateien wurden im Verzeichnis $localSavePath gespeichert."