SFTP-Verzeichnis: Zeitgesteuertes Verschieben anhand Dateiname in Unterordner
Hallo zusammen,
aktuell werden bei uns in einem SFTP-Verzeichnis mehrere Ordner mit Dateien automatisch (extern) angereichert.
Diese Dateien sind nach folgender Syntax benahmt: Kürzel_Abteilung_Datum_bli_bla_blupp.Dateiendung
Pro Ordner liegen darin tausende von Dateien.
Wunschvorstellung:
Script das automatisch nachts aus dem SFTP_Verzeichnis in den Ordnern alle Dateien anhand des Abteilungsnamens in Unterordner verschiebt und anschließend ein Log erstellt was wann wohin verschoben wurde.
Bsp.
/sftp_verzeichnis
/Firma1
/AbteilungA
/AbteilungB
usw.
/Firma2
/AbteilungC
/AbteilungD
usw.
Konnte ich das Wunschszenario klar schildern?
Womit wickeln ich das Verschieben anhand des Abteilungsnamen am einfachsten ab? Powershell?
Wie bekommt man das automatisiert hin? Cronjob?
-->Gibt es Tools die das "einfach" abwickeln?
Sofern es schon einen vergleichbaren Thread (SFTP+zeitgesteuertes Verschieben) gibt den ich nicht gefunden habe, gerne den Link!
VG
Siggi
aktuell werden bei uns in einem SFTP-Verzeichnis mehrere Ordner mit Dateien automatisch (extern) angereichert.
Diese Dateien sind nach folgender Syntax benahmt: Kürzel_Abteilung_Datum_bli_bla_blupp.Dateiendung
Pro Ordner liegen darin tausende von Dateien.
Wunschvorstellung:
Script das automatisch nachts aus dem SFTP_Verzeichnis in den Ordnern alle Dateien anhand des Abteilungsnamens in Unterordner verschiebt und anschließend ein Log erstellt was wann wohin verschoben wurde.
Bsp.
/sftp_verzeichnis
/Firma1
/AbteilungA
/AbteilungB
usw.
/Firma2
/AbteilungC
/AbteilungD
usw.
Konnte ich das Wunschszenario klar schildern?
Womit wickeln ich das Verschieben anhand des Abteilungsnamen am einfachsten ab? Powershell?
Wie bekommt man das automatisiert hin? Cronjob?
-->Gibt es Tools die das "einfach" abwickeln?
Sofern es schon einen vergleichbaren Thread (SFTP+zeitgesteuertes Verschieben) gibt den ich nicht gefunden habe, gerne den Link!
VG
Siggi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 319622
Url: https://administrator.de/contentid/319622
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
6 Kommentare
Neuester Kommentar
Hi,
würde ich mit einem Bash-Script per Cron regelmäßig direkt auf dem SFTP-Server ausführen lassen.
Noch besser: Die Anwendungen schieben ihre Daten selbst direkt ins richtige Verzeichnis, wenn sie doch schon den Abteilungsnamen in den Namen schreiben haben sie ja schon die Information dafür.
Für ein Wunschscript nach Maß kannst du mich für ein Angebot gerne Anschreiben.
Gruß Schluckauf
würde ich mit einem Bash-Script per Cron regelmäßig direkt auf dem SFTP-Server ausführen lassen.
Noch besser: Die Anwendungen schieben ihre Daten selbst direkt ins richtige Verzeichnis, wenn sie doch schon den Abteilungsnamen in den Namen schreiben haben sie ja schon die Information dafür.
Für ein Wunschscript nach Maß kannst du mich für ein Angebot gerne Anschreiben.
Gruß Schluckauf
Du machtst eine Schleife über die Dateien im Ordner und dann splittest du den Dateinamen anhand der "_" (cut -d '_' -f2) und mit dem Ergebnis erstellst du den Ordner und verschiebst die Datei (mv) da rein, fertig.
Also in Bash bspw. so:
Also in Bash bspw. so:
for f in /Firma/Firma01/*.* ;do
foldername="${f%/*}/$(Basename "$f" | cut -d'_' -f2)"
[[ ! -d "$foldername" ]] && mkdir "$foldername"
echo "Moving $f to $foldername"
mv "$f" "$foldername"
done
Nee, Nee, Nee *... Das ist ein Bash-Script das auf dem Linux-Server augeführt wird, kein Powershell... das sieht doch ein Blinder mit Krückstock aus 100m Entfernung!
Sowas als PS auf einem Client laufen zu lassen wäre ja sowieso ineffizient hoch drei, gerade bei so vielen Dateien.
Sowas als PS auf einem Client laufen zu lassen wäre ja sowieso ineffizient hoch drei, gerade bei so vielen Dateien.