Скачать все файлы с чистого FTP-сервера с ограничением сервера - PullRequest
0 голосов
/ 04 апреля 2019

Мне нужно загрузить все файлы с FTP-сервера, но сервер имеет ограничение поиска на 10 000, что усложняет ситуацию.

Я не могу использовать wget -m ftp://username:password@server-adress, поскольку он загружает только первые 10000 файлов.Я могу использовать mget, как mget 20[12]*, mget 20[34]* и т. Д., Но это громоздко, и некоторые загрузки не удается, а я не знаю, какие именно.

Теперь я столкнулся с lftp.Я надеялся на эту команду

mirror --use-pget=10 --only-missing --no-symlinks

Но она ничего не загружает, она просто выводит

To be removed: 0 directories, 70695 files, 0 symlinks

Теперь я не знаю, как на самом деле загрузить все файлы изFTP-сервер с ограничением

РЕДАКТИРОВАТЬ

Теперь я создал сценарий, который создает missing.txt со списком файлов, которые мне еще нужно загрузить.Как я могу использовать этот файл для загрузки файлов один за другим?Список \n с разделителями.

1 Ответ

0 голосов
/ 04 апреля 2019

Итак, я сделал сценарий для всех отсутствующих файлов, который называется missing.txt. Затем я создал цикл для загрузки каждого файла. И теперь он на самом деле загружается один за другим. Сценарий download.sh выглядит следующим образом

#!/bin/bash
HOST='HOSTNAME'
USER='USERNAME'
PASSWD='PASSWORD'

echo open $HOST > ftp.txt
# echo ascii >> ftp.txt
echo user $USER $PASSWD >> ftp.txt
# echo prompt no >> ftp.txt

while read p; do
    echo "get $p"
done <missing.txt >> ftp.txt

echo bye >> ftp.txt
ftp -in < ftp.txt
rm ftp.txt

И тогда это просто вопрос запуска ./download.sh.

...