solarflare
Goto Top

Automatischer FTP-Transfer und vorheriges Verschieben von Dateien auf dem FTP-Server

Hallo,

ich ziehe alle 10 Minuten über Windows FTP und ein Script eine unbekannte Anzahl von Dateien mit unbekannten Namen von einem fremden FTP-Server.
Wenn der Download gelaufen ist, werden die Dateien auf dem FTP-Server gelöscht.
Dazu nutze ich mget und mdelete
Das klappt auch ganz gut, hat aber nun einen schweren Fehler verursacht.
Anscheinend sind durch den Besitzer des FTP-Servers während meines mgets noch zusätzliche Dateien abgelegt worden.
mget kannte diese aber noch nicht und hat sie entsprechend nicht heruntergeladen.
Danach lief das Script weiter zu mdelete und hat alle, auch die nicht geladenen Dateien auf dem Server gelöscht.

Ich habe auf dem Server in unserem Verzeichnis volle Rechte.
Nun dachte ich mir, dass ich erst irgendwie alle Dateien in ein Unterverzeichnis verschiebe und danach dann aus diesem Verzeichnis herunterlade und lösche.
Sollten währenddessen neue Dateien zur Verfügung gestellt werden, lägen die ja im Ursprungsordner und wären vom mdelete nicht betroffen.
Diese würde ich dann einfach im nächsten Durchlauf verschieben und herunterladen / löschen.

Ich stehe aber auf dem Schlauch, wie ich die Dateien mit Windows-FTP in den neuen Ordner verschieben kann.

Ich wäre auch bereit, ein anderes Tool zu nutzen, es muss aber die oben beschriebenen Aufgaben automatisch erledigen, manuell geht da nichts.

Danke für euren Input ;)

Content-ID: 612382

Url: https://administrator.de/contentid/612382

Ausgedruckt am: 26.11.2024 um 02:11 Uhr

146189
Lösung 146189 13.10.2020 aktualisiert um 15:50:24 Uhr
Goto Top
WinSCP ist dein Freund, selbstverständlich auch automatisiert. Zum Syncen hat es den Command synchronize, der vielfältige Optionen bietet.
erikro
erikro 13.10.2020 um 19:46:05 Uhr
Goto Top
Moin,

Zitat von @Solarflare:
Nun dachte ich mir, dass ich erst irgendwie alle Dateien in ein Unterverzeichnis verschiebe und danach dann aus diesem Verzeichnis herunterlade und lösche.
Sollten währenddessen neue Dateien zur Verfügung gestellt werden, lägen die ja im Ursprungsordner und wären vom mdelete nicht betroffen.
Diese würde ich dann einfach im nächsten Durchlauf verschieben und herunterladen / löschen.

Das würde ich anders lösen.:

1. Mit ls den aktuellen Inhalt in ein Array schreiben.
2. Mit einer foreach-Schleife die mit ls gefundenen Dateien mit get und del einzeln kopieren und dann einzeln löschen.

Dann kannst Du Dir das Kopieren in eine Zwischenablage schenken. Die Performance dürfte in etwa die gleiche sein wie bei Deiner Lösung.

hth

Erik
erikro
erikro 13.10.2020 um 19:46:45 Uhr
Goto Top
Zitat von @146189:

WinSCP ist dein Freund, selbstverständlich auch automatisiert. Zum Syncen hat es den Command synchronize, der vielfältige Optionen bietet.

WinSCP ist für ssh und nicht für ftp.
mbehrens
mbehrens 13.10.2020 um 21:30:03 Uhr
Goto Top
Zitat von @erikro:

WinSCP ist für ssh und nicht für ftp.

Nicht ganz. Unterstützt werden zur Zeit SFTP, FTP, SCP, WebDAV und S3.
146189
146189 13.10.2020 aktualisiert um 22:10:51 Uhr
Goto Top
Zitat von @erikro:

WinSCP ist für ssh und nicht für ftp.
Für den Weihnachtsmann vielleicht 😁. Natürlich kann WinSCP auch sämtliche FTP-Spielarten!
https://winscp.net/eng/docs/protocols
erikro
erikro 14.10.2020 um 15:51:47 Uhr
Goto Top
Zitat von @mbehrens:

Zitat von @erikro:

WinSCP ist für ssh und nicht für ftp.

Nicht ganz. Unterstützt werden zur Zeit SFTP, FTP, SCP, WebDAV und S3.

Wieder was gelernt. Aber warum heißt das dann SCP? Blöder Name.
Solarflare
Solarflare 14.10.2020 um 15:55:11 Uhr
Goto Top
Hat prima mit winscp geklappt.
Danke für den Tipp.
146189
146189 15.10.2020 aktualisiert um 16:04:00 Uhr
Goto Top
Zitat von @erikro:
Wieder was gelernt. Aber warum heißt das dann SCP? Blöder Name.
Deswegen
https://winscp.net/eng/docs/project_history
I started the first work on the project in about March 2000, while I was working in the IT department of University of Economics in Prague. The temporary name “WinSCP” (Windows Secure CoPy) was chosen until a nicer name was thought of (which never actually happened).
erikro
erikro 15.10.2020 um 20:48:26 Uhr
Goto Top
Zitat von @146189:

Zitat von @erikro:
Wieder was gelernt. Aber warum heißt das dann SCP? Blöder Name.
Deswegen
https://winscp.net/eng/docs/project_history
> I started the first work on the project in about March 2000, while I was working in the IT department of University of Economics in Prague. The temporary name “WinSCP” (Windows Secure CoPy) was chosen until a nicer name was thought of (which never actually happened).
> 

Ahja. face-wink Danke für die Aufklärung. Wie gesagt: Blöder Name. scp kenne ich als Befehl für secure shell copy. face-wink Vielleicht sollte man mal ein paar Vorschläge für einen besseren machen. face-wink