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 ;)
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 ;)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 612382
Url: https://administrator.de/contentid/612382
Ausgedruckt am: 26.11.2024 um 02:11 Uhr
9 Kommentare
Neuester Kommentar
WinSCP ist dein Freund, selbstverständlich auch automatisiert. Zum Syncen hat es den Command synchronize, der vielfältige Optionen bietet.
Moin,
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
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.
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
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 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.
WinSCP ist für ssh und nicht für ftp.
Nicht ganz. Unterstützt werden zur Zeit SFTP, FTP, SCP, WebDAV und S3.
Für den Weihnachtsmann vielleicht 😁. Natürlich kann WinSCP auch sämtliche FTP-Spielarten!
https://winscp.net/eng/docs/protocols
https://winscp.net/eng/docs/protocols
Deswegen
https://winscp.net/eng/docs/project_history
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).
Zitat von @146189:
Deswegen
https://winscp.net/eng/docs/project_history
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. Danke für die Aufklärung. Wie gesagt: Blöder Name. scp kenne ich als Befehl für secure shell copy. Vielleicht sollte man mal ein paar Vorschläge für einen besseren machen.