Загрузка пакета 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? Спасибо всем за понимание.

One Solution collect form web for “Загрузка пакета 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 
  • Как оптимизировать скрипт загрузки wget
  • В чем смысл «+» в строке выполнения wget?
  • Отображение переноса wget более компактным способом (при сохранении функциональности обнаружения ошибок)
  • Как загрузить все изображения размером> 100 КБ на веб-странице?
  • Как я могу использовать wget для загрузки больших файлов?
  • Использование wget over ssh с завершенным сеансом
  • CURL не будет подключаться к себе
  • Как сделать локальное зеркало веб-сайта с всплывающим окном подтверждения?
  • Загрузите файл yesterdays с FTP-сервера
  • Игнорировать «другие» домены при загрузке с помощью wget?
  • Загрузите сайт HTTPS только через имя пользователя и пароль с помощью wget?
  • Interesting Posts

    Ограничить список команд по SSH

    В X11, как я могу создать пользовательскую комбинацию клавиш, которая отображается в PgUp, PgDn, Home и End?

    Как заставить MATE запускать команду при запуске сеанса?

    Я не могу найти / dev / watchdog

    Существуют ли оболочки, которые поддерживают типизированные переменные и многомерные массивы?

    Почему удаление ножей Iceweasel GNOME?

    Добавить информацию из .dat в CSV-файл

    Почему подстановка командной строки здесь считается одной строкой?

    не удалось войти в солярий

    Как я могу обойти требования сложности с паролями Fedora?

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

    Копирование реплик хэштегов в <blocks>

    Перенаправление вывода при выполнении «bash -c …» из программы C

    как разбить строку после и перед пространством в сценарии оболочки?

    Как получить размер каталога в командной строке?

    Linux и Unix - лучшая ОС в мире.