loki/mailing-project-menu #5
@@ -1,4 +1,4 @@
|
||||
# mail.sh – Remote Datei-Downloader für PINC-Mails
|
||||
# mail.sh – Remote Datei-Downloader für E-Mail-Dateien
|
||||
|
||||
**Wichtig:**
|
||||
Bevor du das Skript verwendest, führe folgende Schritte aus:
|
||||
@@ -19,19 +19,33 @@ Bevor du das Skript verwendest, führe folgende Schritte aus:
|
||||
|
||||
## Beschreibung
|
||||
|
||||
Dieses Skript lädt Dateien, die einem bestimmten Muster entsprechen, von einem Remote-Server herunter. Es sucht in allen Subdirectories unter `/Apps/easyname/run/pinc*/` nach Dateien, die mit der angegebenen Kundennummer beginnen.
|
||||
Dieses Skript lädt E-Mail-Dateien (.eml), die einem bestimmten Muster entsprechen, von einem Remote-Server herunter. Es bietet ein interaktives Menü zur Auswahl des Projekts (pinc oder php-es-info) und sucht dann in allen Subdirectories unter `/Apps/easyname/run/<projekt>*/` nach Dateien, die mit der angegebenen Kundennummer beginnen.
|
||||
|
||||
## Nutzung
|
||||
|
||||
```bash
|
||||
./mail.sh <Kundennummer>
|
||||
./mail.sh
|
||||
```
|
||||
|
||||
Das Skript führt Sie interaktiv durch folgende Schritte:
|
||||
|
||||
1. **Kundennummer eingeben:** Das Skript fragt nach der Kundennummer, die nicht leer sein darf.
|
||||
2. **Projekt auswählen:** Wählen Sie zwischen:
|
||||
- `1` für **pinc**
|
||||
- `2` für **php-es-info**
|
||||
|
||||
**Beispiel:**
|
||||
```bash
|
||||
./mail.sh 123
|
||||
./mail.sh
|
||||
Bitte geben Sie eine Kundennummer ein:
|
||||
Kundennummer: 123
|
||||
Bitte wählen Sie ein Projekt:
|
||||
1) pinc
|
||||
2) php-es-info
|
||||
Ihre Auswahl (1 oder 2): 1
|
||||
```
|
||||
Das Skript sucht dann nach allen Dateien, die mit `123-` beginnen, und lädt sie in ein lokales Verzeichnis `./123/` herunter.
|
||||
|
||||
Das Skript sucht dann nach allen `.eml`-Dateien, die mit `123` beginnen, und lädt sie in ein lokales Verzeichnis `./123/` herunter.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
@@ -41,10 +55,11 @@ Das Skript sucht dann nach allen Dateien, die mit `123-` beginnen, und lädt sie
|
||||
|
||||
## Ablauf
|
||||
|
||||
1. Das Skript prüft, ob eine Nummer als Argument übergeben wurde.
|
||||
2. Es verbindet sich per SSH mit dem Server und sucht in allen passenden Subdirectories nach Dateien, die mit `<Kundennummer>-` beginnen.
|
||||
3. Gefundene Dateien werden in ein lokales Verzeichnis mit dem Namen der Nummer heruntergeladen (z.B. `./123/`).
|
||||
4. Das lokale Verzeichnis wird automatisch erstellt, falls es noch nicht existiert.
|
||||
1. Das Skript fragt interaktiv nach der Kundennummer (darf nicht leer sein).
|
||||
2. Das Skript zeigt ein Menü zur Auswahl des Projekts (pinc oder php-es-info).
|
||||
3. Es verbindet sich per SSH mit dem Server und sucht in allen passenden Subdirectories unter `/Apps/easyname/run/<projekt>*/` nach `.eml`-Dateien, die mit der eingegebenen Kundennummer beginnen.
|
||||
4. Gefundene Dateien werden in ein lokales Verzeichnis mit dem Namen der Kundennummer heruntergeladen (z.B. `./123/`).
|
||||
5. Das lokale Verzeichnis wird automatisch erstellt, falls es noch nicht existiert.
|
||||
|
||||
## Fehlerbehandlung
|
||||
|
||||
|
||||
@@ -1,26 +1,55 @@
|
||||
#!/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
|
||||
# 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
|
||||
|
||||
# Definieren Sie die Verbindungsdetails
|
||||
# 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/pinc*/*/'")
|
||||
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/pinc/ gefunden."
|
||||
echo "Keine Subdirectories in /Apps/easyname/run/${remoteDir}/ gefunden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
localSavePath="$PWD/$1" # Setzt den lokalen Speicherpfad relativ zum aktuellen Verzeichnis
|
||||
filePattern="$1-*"
|
||||
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=""
|
||||
|
||||
Reference in New Issue
Block a user