2016-04-16 7 views
2

Ich versuche, ein öffentliches FTP in ein lokales Verzeichnis zu spiegeln. Wenn ich wget -m {url} benutze, überspringt wget ziemlich schnell viele Dateien, die bereits heruntergeladen wurden (und keine neuere Version existiert), wenn ich lftp open -u user,pass {url}; mirror dann 10 für jede Datei verwende, bevor ich entscheide, ob ich die Datei herunterladen soll oder nicht. Mit 2 Millionen + Dateien in 50 Tausend + Verzeichnissen ist das sehr langsam, außerdem bekomme ich Fehlermeldungen, dass MDTM von Verzeichnissen nicht erhalten werden konnte.Beschleunigte LFTP-Spiegelung mit vielen Verzeichnissen

Im Handbuch heißt es, dass die Verwendung von set sync-mode off dazu führt, dass alle Anfragen gleichzeitig gesendet werden, so dass lftp nicht auf jede Antwort wartet. Wenn ich das mache, bekomme ich vom Server Fehlermeldungen, dass von meiner IP-Adresse zu viele Verbindungen sind.

versuchte ich wget ersten zum Download läuft nur die neueren Dateien, aber nicht gelöscht, die Dateien, die vom FTP-Server entfernt wurden, so dass ich Follow-up mit lftp die alten Dateien zu entfernen, aber lftp sendet noch MDTM auf jedem Datei, was bedeutet, dass dieser Ansatz keinen Vorteil bringt. Wenn ich set ftp:use-mdtm off verwende, scheint es so, als ob lftp nur alle Dateien erneut herunterlädt.

Könnte jemand die richtige Einstellung für lftp mit einer großen Anzahl von Verzeichnissen/Dateien vorschlagen (speziell, so dass es Verzeichnisse überspringt, die nicht aktualisiert wurden, wie wget zu tun scheint)?

Antwort

3

Verwenden Sie set ftp:use-mdtm off und mirror --ignore-time für den ersten Aufruf, um das erneute Herunterladen aller Dateien zu vermeiden.

Sie können auch ein Upgrade versuchen lftp und/oder set ftp:use-mlsd on zu verwenden, in diesem Fall lftp genaue Datei-Änderungszeit von der MLSD Befehlsausgabe erhalten wird (vorausgesetzt, dass der Server den Befehl unterstützt).

+0

Vielen Dank für diesen Kommentar. Ich benutze OSX und 'brew install lftp --upgrade' sagt mir, dass ich die neueste Version 4.6.5 habe. Ich kann von http://lftp.yar.ru sehen, dass 4.7 draußen ist, also werde ich warten, bis es über brauen verfügbar wird. – econ

+0

Versucht mit 'set ftp: use-mdtm off' und' mirror --ignore-time' und das Programm überprüft die Verzeichnisse sehr schnell. Könntest du klarstellen, wenn du "erster Aufruf" sagst, was wäre die richtige Einstellung für den zweiten Aufruf? – econ

+0

Bei zweiten und weiteren Aufrufen wird die Option "--ignore-time" nicht benötigt, da die Zeitstempel den angezeigten Zeitstempeln nach dem ersten Spiegel entsprechen würden. – lav

Verwandte Themen