Загрузка пакета Wget и сохранение неудачных ссылок

Можно ли использовать wget для загрузки нескольких файлов из текстового файла и сохранить ли URL-адрес любых неудачных загрузок в другом текстовом файле?

Я использую скрипты wget bash для загрузки файлов из текстового файла следующим образом:

wget -i "/home/user/downloadURLs.txt" 

downloadURLs.txt содержит один URL для загрузки в строке:

 http://[website].com/file1 http://[website].com/file2 http://[website].com/file3 http://[website].com/file4 

Если один из файлов не загружается, я хотел бы, чтобы сбой URL был сохранен в отдельный файл. Но при загрузке с использованием опции -i wget я думаю, что код выхода будет либо 0, если все загрузки будут успешными, либо код выхода с ошибкой, если любая загрузка не удалась вообще. Если я не могу получить код выхода для каждого отдельного URL-адреса, я не могу сохранить его только с ошибками.

Я думаю, что это сработает:

 #!/bin/bash #map lines of text file to an array mapfile -t inputUrls < "/home/user/downloadURLs.txt" for url in ${inputUrls[@]} do wget "$url" if [[ $? != 0 ]] "$url" >> "/home/user/failedDownloads.txt" fi done 

Причина, по которой я не уверен, что хочу это сделать, заключается в том, что при загрузке нескольких файлов с одного веб-сайта wget часто говорит «Повторное использование существующего соединения с [веб-сайтом]». Похоже, что такое поведение предназначено для ускорения загрузки с одного веб-сайта, и я полагаю, что оптимизация теряется, если wget вызывается отдельно для каждого URL-адреса.

Правильно ли я полагаю, что wget может загружаться более эффективно, если используется входной файл с -i ?

Если я прав, как загрузить URL-адреса из текстового файла и сохранить неудавшиеся URL-адреса в отдельный файл, но при этом использовать оптимизацию wget? Спасибо всем за понимание.

почему бы просто не перенаправить stderr ?

 $ wget -i test.txt 2> wget-fail.log $ cat wget-fail.log --2016-11-15 22:06:50-- http://failing-host.com/ Auflösen des Hostnamen »failing-host.com (failing-host.com)«... fehlgeschlagen: Der Name oder der Dienst ist nicht bekannt. wget: kann die Host-Adresse »failing-host.com« nicht auflösen 

[редактировать]

У меня есть функция регистрации, установленная в скрипте bash для создания журнала, который сохраняет как stdout, так и stderr. Просто использование 2> похоже, создает файл журнала с таким же огромным объемом информации в нем, включая успешные загрузки. Я мог бы подойти к проблеме под углом анализа файла журнала, …

нет необходимости в анализе:

 $ cat wget.sh #!/bin/bash echo log to stdout echo >&2 log to stderr wget -i test.txt 2> wget-fail.log $ sh wget.sh &> script.log $ cat script.log log to stdout log to stderr $ cat wget-fail.log --2016-11-15 23:02:00-- http://failing-host.com/ Auflösen des Hostnamen »failing-host.com (failing-host.com)«... fehlgeschlagen: Der Name oder der Dienst ist nicht bekannt. wget: kann die Host-Adresse »failing-host.com« nicht auflösen