wget альтернатива загрузке файлов

мне нужно загрузить 10 000 zip-файлов с FTP-сервера клиента, на котором около 40 000 элементов. Я подумывал сделать:

$ cat > files.txt
file1
file2
file3
file4

С

$ wget -i files.txt

есть ли лучшее решение для такой большой суммы в случае, если я получаю тайм-аут?

5
источник

3 ответов

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

вы также можете написать сценарий для большинства FTP-клиентов командной строки (например, BSD ftp-клиент). Но wget лучше в том, что вы можете настроить его, чтобы не скачать файлы у вас уже есть, что делает его очень удобным для синхронизаций.

wget поддерживает (по крайней мере, на Linux) также ограничение скорости, и это довольно легко распространять файл список между несколькими файлами для того, чтобы скачать параллельно, или вы можете использовать GNU parallel.

2
отвечен LSerni 2013-04-16 14:33:48
источник

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

я использую LFTP для передачи и синхронизации по FTP и SFTP. Он имеет внутреннюю систему очередей, которая хорошо работает для моего случая использования, поддерживает зеркальное отображение, обратное зеркальное отображение, FXP, все обычные функции FTP и многое другое (даже Bittorrent в настоящее время).

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

Я также использовал NcFTP у этого есть очень хорошая пакетная система, но выключатель сделки в пользу LFTP для меня заключался в том, что он поддерживал как FTP, так и SFTP.

Другой альтернативой является rsync, который также поддерживает FTP, и возможно, вы уже привыкли к этому. Он также имеет довольно расширенные опции, готовые в соответствии фильтрация и возобновление прерванных загрузок.

преимущество с" реальным " FTP-клиентом по сравнению с batch wget использовать, что одно соединение с сервером может быть использовано повторно, что может повысить производительность. Я не уверен, что есть такая альтернатива wget, но, возможно, есть. Если это настоящая одноразовая операция, вы, вероятно, могли бы использовать более или менее что-нибудь.

1
отвечен Daniel Andersson 2013-04-16 14:56:25
источник

lftp довольно хорош в этом. Примечание дальше и expandnd шаблоны OPTS.

lftp :~> help mirror
Usage: mirror [OPTS] [remote [local]]
Mirror specified remote directory to local directory

-c, --continue continue a mirror job if possible -e, --delete delete files not present at remote site --delete-first delete old files before transferring new ones -s, --allow-suid set suid/sgid bits according to remote site --allow-chown try to set owner and group on files --ignore-time ignore time when deciding whether to download -n, --only-newer download only newer files (-c won't work) -r, --no-recursion don't go to subdirectories -p, --no-perms don't set file permissions --no-umask don't apply umask to file modes -R, --reverse reverse mirror (put files) -L, --dereference download symbolic links as files -N, --newer-than=SPEC download only files newer than specified time -P, --parallel[=N] download N files in parallel -i RX, --include RX include matching files -x RX, --exclude RX exclude matching files RX is extended regular expression -v, --verbose[=N] verbose operation --log=FILE write lftp commands being executed to FILE --script=FILE write lftp commands to FILE, but don't execute them --just-print, --dry-run same as --script=-

When using -R, the first directory is local and the second is remote. If the second directory is omitted, basename of first directory is used. If both directories are omitted, current local and remote directories are used.

lftp :~> help mget
Usage: mget [OPTS] 
Gets selected files with expanded wildcards
 -c  continue, reget
 -d  create directories the same as in file names and get the
     files into them instead of current directory
 -E  delete remote files after successful transfer
 -a  use ascii mode (binary is the default)
 -O  specifies base directory or URL where files should be placed
0
отвечен Ярослав Рахматуллин 2013-04-16 15:58:40
источник

Другие вопросы wget