Ускорение зеркалирования lftp со многими каталогами

Я пытаюсь отразить общедоступный FTP в локальный каталог. Когда я использую wget -m {url}, тогда wget довольно быстро пропускает множество файлов, которые уже были загружены (и более новой версии не существует), когда я использую lftp open -u user,pass {url}; mirror, то lftp отправляет MDTM для каждого файла, прежде чем решить, загружать файл или нет. С 2 миллионами файлов в более чем 50 тысячах каталогов это очень медленно, кроме того, я получаю сообщения об ошибках, что MDTM каталогов не может быть получен.

В руководстве сказано, что использование set sync-mode off приведет к отправке всех запросов одновременно, так что lftp не будет ждать каждого ответа. Когда я это делаю, я получаю сообщения об ошибках от сервера, в которых говорится, что с моего IP-адреса слишком много подключений.

Сначала я попытался запустить wget, чтобы загрузить только новые файлы, но это не удаляет файлы, которые были удалены с FTP-сервера, поэтому я использую lftp, чтобы удалить старые файлы, однако lftp по-прежнему отправляет MDTM для каждого файла, что означает что в этом подходе нет никаких преимуществ.

Если я использую set ftp:use-mdtm off, то кажется, что lftp просто заново скачивает все файлы.

Может ли кто-нибудь предложить правильную настройку для lftp с большим количеством каталогов/файлов (в частности, чтобы он пропускал каталоги, которые не были обновлены, как это делает wget)?


person econ    schedule 16.04.2016    source источник


Ответы (1)


Используйте set ftp:use-mdtm off и mirror --ignore-time для первого вызова, чтобы избежать повторной загрузки всех файлов.

Вы также можете попробовать обновить lftp и/или использовать set ftp:use-mlsd on, в этом случае lftp получит точное время модификации файла из вывода команды MLSD (при условии, что сервер поддерживает эту команду).

person lav    schedule 18.04.2016
comment
Спасибо за этот комментарий. Я использую OSX, и brew install lftp --upgrade говорит мне, что у меня последняя версия 4.6.5. На сайте lftp.yar.ru я вижу, что версия 4.7 вышла, так что подожду, пока она станет доступна через заваривать. - person econ; 18.04.2016
comment
Пробовал с set ftp:use-mdtm off и mirror --ignore-time и программа очень быстро проверила каталоги. Не могли бы вы уточнить, когда вы говорите «первый вызов», какова будет правильная настройка для второго вызова? - person econ; 18.04.2016
comment
При втором и последующих вызовах опция --ignore-time не понадобится, так как временные метки уже будут соответствовать отображаемым временным меткам после первого зеркала. - person lav; 18.04.2016