Files
esn-support-bash-snippets/legacy/pincMails/mail.sh
T

98 lines
3.1 KiB
Bash

#!/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."