From 669325fded3505781ec3040adaebb997cf0eb11d Mon Sep 17 00:00:00 2001 From: Loki Date: Thu, 11 Sep 2025 09:46:18 +0200 Subject: [PATCH] added PINC mail script --- legacy/pincMails/README.md | 57 +++++++++++++++++++++++++++++++++ legacy/pincMails/mail.sh | 65 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 legacy/pincMails/README.md create mode 100644 legacy/pincMails/mail.sh diff --git a/legacy/pincMails/README.md b/legacy/pincMails/README.md new file mode 100644 index 0000000..e5de517 --- /dev/null +++ b/legacy/pincMails/README.md @@ -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="" + ``` + 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 +``` + +**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 `-` 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. \ No newline at end of file diff --git a/legacy/pincMails/mail.sh b/legacy/pincMails/mail.sh new file mode 100644 index 0000000..47c3b52 --- /dev/null +++ b/legacy/pincMails/mail.sh @@ -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="" # Ersetze 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." \ No newline at end of file