FTP-get und löschen von mehreren Dateien
Habe ich bekommen und löschen Sie mehrere Dateien per FTP, also schrieb ich dieses Skript:
open ftp.myftpserver.org
user
pass
cd folder
lcd E:\localdir
mget *
mdel *
bye
Diese funktioniert, ist aber nicht sicher, da der folder
ist gefüttert aus anderen Quellen und die mdel *
Schritt löschen kann, die hochgeladenen Dateien in der Zwischenzeit.
Ich denke, eine Lösung könnte sein, das verschieben der Dateien über das Netzwerk zu einem anderen Ordner, den Aufbau einer filelist am Anfang des Prozesses, aber ich habe keine Ahnung, wie es zu machen.
Ist es moeglich?
InformationsquelleAutor ciquta | 2014-03-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
ok, dann denke ich, dass Sie implementieren können, die algorithum habe ich beschrieben, wie ein batch-Skript mit zwei separaten ftp-Anrufe und-Skripts. Die ersten, die Liste der Dateien übertragen werden, die von der remote-dir, die zweite zu erhalten, und löschen Sie eine einzelne Datei aus der Liste.
Die Datei script erstellt werden, die dynamisch auf jeder loop-iteration, um die nächste Datei.
Diese Website ist ein Beispiel dafür tun, similer (Hinweis: script somit nicht arbeiten, Kommentare geben details von Korrekturen notwendig).
http://www.computing.net/answers/programming/batch-ftp-script-list-rename-get-delete/25728.html
InformationsquelleAutor dethorpe
FTR folgte ich dem netten Hinweis und ich schaffte es erfolgreich gemacht etwas arbeiten, vielleicht nicht elegant, aber funktioniert:
Erste Schritt, um aus der Datei-Liste:
getfilelist.bat
Zweiten Schritt zum laden und löschen der oben genannten Dateien
movefiles.bat
Eine bat-Datei an die oben genannten Schritte:
hoffe es hilft
InformationsquelleAutor ciquta
Weiß nicht, ob Sie tun können, dass mit einem Skript aus mit ftp-client.
Könnte besser sein, es zu tun als ein Programm oder scipt in eine Sprache Ihrer Wahl mit einem FTP-Bibliothek, so haben Sie viel mehr Kontrolle über den FTP-Operationen. z.B. perl mit Net::ftp, java, etc.
Dann könnten Sie implementieren eine algorithum wie:
Müssen auch sicherstellen, dass Sie nicht versuchen, eine Datei, die gerade geschrieben werden, abhängig von o/s diese könnten behandelt werden Sie mit Datei sperren, aber Sie müssen sicherstellen, dass Dateien geschrieben werden, um die remote dir in einem zwei-Stufen-Prozess. Zunächst zu einem temporary-Verzeichnis oder Dateiname nicht mit dem Datei-Muster, das Sie überprüfen möchten, dann umbenannt oder verschoben in den richtigen Speicherort und den Namen, die Sie erkennen.
InformationsquelleAutor dethorpe
Ich hatte ein ähnliches problem. Es sieht eine Menge von Menschen kämpfen, hier 😉
Ich habe den download mehrerer Dateien und entfernen Sie Sie nach erfolgreichem Download auf dem remote-Server, um zu vermeiden, doppelte Verarbeitung. Es gibt eine sehr kleine chance, dass dabei ein
mget
dem remote-System fügt weitere Dateien. So einmdelete
könnte zu löschen untransferred-Dateien.Mein Ansatz war nicht, um etwas anderes als FTP Kommandos. Hier gehen wir:
Auf einen Blick, die ich verschieben Sie alle Dateien in ein extra Verzeichnis auf dem remote-server. Sollte sehr schnell sein, wie dies geschieht lokal. Nachdem die Dateien verschoben, um den transfer dir, führe ich die eigentliche
mget
download. Dies kann länger dauern und währenddessen weitere Dateien werden sicher hochgeladen, auf dem remote-Server-Haupt-dir.Nachdem der download beendet ist, lösche ich alle Dateien im transfer dir, und entfernen Sie das dir selbst.
smart, aber nicht 100% sicher
InformationsquelleAutor Lars Hinrichsen