SFTP Automatischer Download. Täglich neues Datum
Hallo zusammen,
ich würde gerne einen Arbeitsablauf bei uns automatisieren.
Wir bekommen jeden Tag um 22 Uhr über 5 verschiedene SFTP Server jeweils 2 Dateien, die am nächsten Tag heruntergeladen werden müssen und in ein System importiert werden müssen.
Die Dateien werden jeden Tag per Hand heruntergeladen.
Eine Datei heißt dabei immer gleich und wird jeden Tag auf dem SFTP Server überschrieben. Dateiname: produkt_länderkürzel.csv
Eine Datei ändert innerhalb dem Dateinamen immer das Datum. Heute zb. turn_länderkürzel2023-06-19.csv. Die Datei für morgen wird dann turn_länderkürzel2023-06-20.csv heißen. So geht es dann immer weiter.
Wir loggen uns jetzt immer in WinSCP ein, öffnen den ersten Server, laden die 2 Dateien runter.
Dann öffnen wir den nächsten Server und laden wieder diese 2 Dateien herunter.
Das ganze machen wir jeden Tag. Ich würde das jetzt gerne irgendwie automatisieren. Dann müssten wir das nicht jeden Tag früh machen, sondern könnte das direkt in der Nacht runterladen lassen.
Somit hätten wir keine Verzögerung.
Ich muss dazu nicht WinSCP nehmen, wenn es ein andere Lösung gibt.
Bin über jeden Hinweis bzw. Hilfe dankbar.
Edit: Wichtig ist vielleicht noch, das ganze läuft momentan auf Windows.
Danke
ich würde gerne einen Arbeitsablauf bei uns automatisieren.
Wir bekommen jeden Tag um 22 Uhr über 5 verschiedene SFTP Server jeweils 2 Dateien, die am nächsten Tag heruntergeladen werden müssen und in ein System importiert werden müssen.
Die Dateien werden jeden Tag per Hand heruntergeladen.
Eine Datei heißt dabei immer gleich und wird jeden Tag auf dem SFTP Server überschrieben. Dateiname: produkt_länderkürzel.csv
Eine Datei ändert innerhalb dem Dateinamen immer das Datum. Heute zb. turn_länderkürzel2023-06-19.csv. Die Datei für morgen wird dann turn_länderkürzel2023-06-20.csv heißen. So geht es dann immer weiter.
Wir loggen uns jetzt immer in WinSCP ein, öffnen den ersten Server, laden die 2 Dateien runter.
Dann öffnen wir den nächsten Server und laden wieder diese 2 Dateien herunter.
Das ganze machen wir jeden Tag. Ich würde das jetzt gerne irgendwie automatisieren. Dann müssten wir das nicht jeden Tag früh machen, sondern könnte das direkt in der Nacht runterladen lassen.
Somit hätten wir keine Verzögerung.
Ich muss dazu nicht WinSCP nehmen, wenn es ein andere Lösung gibt.
Bin über jeden Hinweis bzw. Hilfe dankbar.
Edit: Wichtig ist vielleicht noch, das ganze läuft momentan auf Windows.
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7590397217
Url: https://administrator.de/contentid/7590397217
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
27 Kommentare
Neuester Kommentar
Moin,
lässt sich hervorragend via Powershell automatisieren:
https://winscp.net/eng/docs/library_powershell
https://winscp.net/eng/docs/library_session_getfiles
edit: In eine *.tx oder *.ini packst du dann die 5 Server untereinander, liest im PS-Script die Datei aus und für jeden Eintrag stößt du dann den Download an. Dann lässt sich das Script hervorragend erweitern, ohne am eigentlich Code herumzudoktern...
Gruß
em-pie
lässt sich hervorragend via Powershell automatisieren:
https://winscp.net/eng/docs/library_powershell
https://winscp.net/eng/docs/library_session_getfiles
edit: In eine *.tx oder *.ini packst du dann die 5 Server untereinander, liest im PS-Script die Datei aus und für jeden Eintrag stößt du dann den Download an. Dann lässt sich das Script hervorragend erweitern, ohne am eigentlich Code herumzudoktern...
Gruß
em-pie
Zitat von @wusa88:
Genau darum geht es mir, ich habe sowas noch nie gemacht.
Weder mit Powershell, ich könnte zwar ChatGPT fragen, aber ich kann den Code dann vermutlich nicht interpretieren.
Genau darum geht es mir, ich habe sowas noch nie gemacht.
Weder mit Powershell, ich könnte zwar ChatGPT fragen, aber ich kann den Code dann vermutlich nicht interpretieren.
Dann frage WinSCP - das Programm kann dir den Code für einen Server fix und fertig generieren.
Wenn es nicht schön werden muss, pappst du einfach die 5 verschiedenen Versionen nacheinander in eine .ps1-Datei
bsp.
usw.
Bekommt auch ein Laie in ein paar Minuten ehrlich gesagt auch selbst ohne ChatGPT hin. Just RTFM and use the thing on your neck!
Zeppel
winscp /command "option batch on" "option confirm off" "open sftp://domain.tld -username=BlaBlub -password=PASSWORD" "get -latest /mypath/turn_länderkürzel????-??-??.csv /mypath/produkt_länderkürzel.csv D:\Ziel\" close exit
scp -i myprivate.key myuser@domain.tld:"/mypath/turn_länderkürzel\*.csv /mypath/produkt_länderkürzel.csv" /my/local/path/
Bekommt auch ein Laie in ein paar Minuten ehrlich gesagt auch selbst ohne ChatGPT hin. Just RTFM and use the thing on your neck!
Zeppel
Zitat von @wusa88:
Das sieht für mich so aus, als würde die Verbindung stehen.
Die Datei gibt es aber definitiv ich vermute hier einen Fehler im Script? Falsches Anführungszeichen? Muss das irgendwie anders aufgebaut werden?
Das sieht für mich so aus, als würde die Verbindung stehen.
Die Datei gibt es aber definitiv ich vermute hier einen Fehler im Script? Falsches Anführungszeichen? Muss das irgendwie anders aufgebaut werden?
- Stimmt der Pfad auf dem FTP-Server?
- Stimmt die Groß- und Kleinschreibung? Manche Server legen da Wert drauf. Mach doch vor dem get doch einfach mal ein list/dir.
- Stimmen die Zugriffsrechte auf dem Server?
lks
Zitat von @wusa88:
Das sieht für mich so aus, als würde die Verbindung stehen.
Die Datei gibt es aber definitiv ich vermute hier einen Fehler im Script? Falsches Anführungszeichen? Muss das irgendwie anders aufgebaut werden?
Das sieht für mich so aus, als würde die Verbindung stehen.
Die Datei gibt es aber definitiv ich vermute hier einen Fehler im Script? Falsches Anführungszeichen? Muss das irgendwie anders aufgebaut werden?
mach dir das Leben doch nicht so schwer!
Stelle mit WinSCP eine Verbindung zu dem FTP-Server her. Wechsle nun in das richtige Verzeichnis.
Klicke mit der rechten Maustaste auf die Datei, die du herunterladen willst. Dann Wählst du Herunterladen und dann Herunterladen...
In dem nun kommenden Fenster klickst du auf Übertragungsoptionen
dann auch Code generieren...
Wählst den Reiter .NET...
wählst Sprache Powershell
und fertig ist der Lack!
Moin,
ich würde auch vermuten, dass die Datei eine Ordnerebene tiefer liegt.
Baue mal ein Directory Listening ein:
https://winscp.net/eng/docs/library_session_listdirectory
ich würde auch vermuten, dass die Datei eine Ordnerebene tiefer liegt.
Baue mal ein Directory Listening ein:
https://winscp.net/eng/docs/library_session_listdirectory
wie kann man nur so unselbständig sein
Ersetzte das Datum in deinem Script durch
und das ist keine Aussage, die man in einem Admin-Forum postet. Warum funktioniert das nicht?
Ersetzte das Datum in deinem Script durch
$(get-date -Format "yyyy-MM-dd")
und das ist keine Aussage, die man in einem Admin-Forum postet. Warum funktioniert das nicht?
Zitat von @wusa88:
Perfekt, der Pfad war es. Ich habe den Pfad hier eingefügt:
Perfekt, der Pfad war es. Ich habe den Pfad hier eingefügt:
"open sftp://ausfuhr:Dxx2Tuxxxx1e45@xx.xx.2x4.1x1:222/direkter Pfad zur Datei -hostkey=`"`"ssh-ed25519 255 vxxxxxxxxx/dZxxxxxxx6m/qPLCxxxxxxxxxx6NxCnVU`"`"" `
Eben. Wenn der nicht stimmt, kann er die Datei gar nicht finden.
lks