added PINC mail script
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
# mail.sh – Remote Datei-Downloader für PINC-Mails
|
||||||
|
|
||||||
|
**Wichtig:**
|
||||||
|
Bevor du das Skript verwendest, führe folgende Schritte aus:
|
||||||
|
|
||||||
|
1. **Mach das Skript ausführbar:**
|
||||||
|
```bash
|
||||||
|
chmod +x mail.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Passe den Benutzernamen an:**
|
||||||
|
Ersetze im Skript die Stelle
|
||||||
|
```
|
||||||
|
username="<deinNESSUSuser>"
|
||||||
|
```
|
||||||
|
durch deinen tatsächlichen Benutzernamen für den Server `appdb02.in.easyname.com`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
## Nutzung
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./mail.sh <Kundennummer>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Beispiel:**
|
||||||
|
```bash
|
||||||
|
./mail.sh 123
|
||||||
|
```
|
||||||
|
Das Skript sucht dann nach allen Dateien, die mit `123-` beginnen, und lädt sie in ein lokales Verzeichnis `./123/` herunter.
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
- SSH-Zugriff auf den Server `appdb02.in.easyname.com`
|
||||||
|
- Der angegebene Benutzername muss gültig sein und die nötigen Berechtigungen besitzen
|
||||||
|
- `scp` und `ssh` müssen auf deinem System installiert sein
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
## Fehlerbehandlung
|
||||||
|
|
||||||
|
- Falls keine passenden Dateien gefunden werden, gibt das Skript eine entsprechende Meldung aus.
|
||||||
|
- Bei Fehlern während des Downloads oder beim Erstellen des lokalen Verzeichnisses wird eine Fehlermeldung angezeigt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Hinweis:**
|
||||||
|
Das Skript ist für den Einsatz in einer Linux-Umgebung vorgesehen.
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
#!/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"
|
||||||
|
username="<deinNESSUSuser>" # Ersetze <deinNESSUSuser> durch Ihren tatsächlichen Benutzernamen
|
||||||
|
|
||||||
|
# Remote-Directory überprüfen und Subdirectories auflisten, unter Verwendung von bash
|
||||||
|
remoteDirectories=$(ssh "$username@$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 "$username@$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 "$username@$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."
|
||||||
Reference in New Issue
Block a user