65 lines
2.2 KiB
Bash
65 lines
2.2 KiB
Bash
#!/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." |