Пакетная загрузка URL-адресов из многопоточной командной строки
У меня есть 100 000 URL-адресов небольших файлов для загрузки. Хотелось бы использовать 10 нитей и конвейерная обработка является обязательным условием. Я объединяю результат в один файл. Текущий подход:
cat URLS | xargs -P5 -- curl >> OUTPUT
Есть ли лучший вариант, который покажет прогресс всей операции? Должен работать из командной строки.
1 ответ
Решение
cat URLS | parallel -k -P10 curl >> OUTPUT
или если прогресс важнее:
cat URLS | parallel -k -P10 --eta curl >> OUTPUT
или же:
cat URLS | parallel -k -P10 --progress curl >> OUTPUT
10-секундная установка попытается выполнить полную установку; в случае неудачи - личная установка; если это не удается, минимальная установка.
wget -O - pi.dk/3 | sh
Посмотрите вступительное видео для быстрого ознакомления: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1