Скачиваем через wget с ftp с авторизацией

Недавно мне понадобилось скачать сайт с кучей мелких файлов. Как обычно я запустил mc, подключился к серверу и стал скачивать.

Но по какой то непонятной причине коннект постоянно рвался, да и сканировал mc структуру папок довольно долго.

Сначала я хотел попробовать консольным FTP, но никак не мог найти команду для рекурсивного скачивания, при этом я постоянно натыкался на рекомендации сделать это через wget, что я и решил попробовать

Синтаксис команды предельно прост

wget -r ftp://LOGIN:PASSWORD@FTP_SERVER_IP_OR_HOSTNAME:PORT

Ключ -r означает ходить по папкам рекурсивно, всё остальное я думаю понятно 🙂

Поставив скачиваться сайт, я пошел налить чаю, а когда вернулся, то увидел что экран больше не скроллится. Я конечно сразу подумал, что опять произошел дисконнет, однако последняя надпись гласила


FINISHED --2017-09-11 20:34:28--
Total wall clock time: 9m 7s
Downloaded: 3460 files, 753M in 2m 3s (6.13 MB/s)

Что меня, к слову, изрядно удивило в плане скорости — оказалось что скачивать wget ftp с авторизацией и просто и, что важнее, намного быстрее чем через mc. Единственный момент — файлы закачиваются не туда, где запущен wget, а сначала создается папка с именем FTP_SERVER_IP_OR_HOSTNAME и в нее уже сохраняется структура. Искать где это отключить мне было влом, и я просто скопировал файлы на уровень выше.

UPDATE

Оказалось что wget скачал не всё, по причине того что дефолтная глубина при рекусивном скачивании = 5.

Правильный синтаксис такой

wget -r -l inf ftp://LOGIN:PASSWORD@FTP_SERVER_IP_OR_HOSTNAME:PORT
или
wget -m ftp://LOGIN:PASSWORD@FTP_SERVER_IP_OR_HOSTNAME:PORT

Во втором варианте сохраняется time-stamp файлов, т.е.

-m

=

-r -l inf -N

Добавить комментарий

Ваш e-mail не будет опубликован.