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)?
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
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
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