Загрузка пакета 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 
  • Почему curl -O -C на Mac не загружается
  • Как я могу использовать wget для загрузки больших файлов?
  • wget изменяет имя файла после загрузки
  • Как проверить, поддерживает ли `wget` определенную функцию программно?
  • Curl-эквивалент wget's -read-timeout = X
  • Необходимый инструмент для загрузки - с настраиваемыми заголовками, возобновлением, повторной попыткой, выдачей пользовательского имени файла и динамическим перенаправлением
  • wget пакетный файл linux
  • Wget - получение рекурсивных URL-адресов из списка URL-адресов
  • Как я могу обновить сертификаты в своей системе, чтобы исправить ошибку wget: «Не удалось установить соединение SSL»?
  • Как поставить отметку времени с помощью: wget --output-file =
  • Как найти реальный URL для скачивания
  • Interesting Posts

    udisks2 – acl не может получить права на запись для обычного пользователя

    сеанс .ksh зависает после того, как он неактивен

    Какая версия Linux для практического использования сценариев / программирования Unix?

    Убивать дочерние родительские процессы в одной команде

    Куда идут мои нажатия клавиш?

    Как превратить Linux по умолчанию в дополнение к некоторой файловой системе в linux поверх zfs?

    Почему не удается загрузить этот процесс при запуске?

    Докерный запуск вызывает панику ядра

    Что следует учитывать при выборе файловой системы для личного дискового архива / холодного хранения?

    Tmux 2.0 "pane_current_path" не работает на CentOS

    Присоедините произвольные строки для вывода в виде одной строки

    NAT и запомнить оригинальный IP-адрес?

    Безопасно ли взять образ диска текущего рабочего диска?

    tar игнорирует вариант «более новый»

    случай отсутствия / usr / bin / jexec

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