Могу ли я доверять статусу выхода wget, даже если он был перезапущен?

Я запустил работу wget с помощью следующей команды:

 urls=(https://example.com/file1 https://example.com/file2 https://example.com/file3 https://example.com/file4) for url in ${urls[@]}; do wget "$url" 2>/dev/null && echo "$url done" >> progress & done 

Это были файлы по 30-40 Г каждый, поэтому я позволил ему работать на ночь. Сегодня я снова проверил и нашел следующее:

 -rw-rw-r-- 1 a staff 13M Mar 18 15:11 file1 -rw-rw-r-- 1 a staff 18M Mar 18 15:12 file1.1 -rw-rw-r-- 1 a staff 38G Mar 18 21:10 file1.2 -rw-rw-r-- 1 a staff 12M Mar 18 15:12 file2 -rw-rw-r-- 1 a staff 44G Mar 18 21:35 file2.1 -rw-rw-r-- 1 a staff 446 Mar 18 21:35 progress -rw-rw-r-- 1 a staff 40G Mar 18 21:24 file3.1 -rw-rw-r-- 1 a staff 4.4M Mar 18 15:12 file3 -rw-rw-r-- 1 a staff 6.5M Mar 18 15:12 file4 -rw-rw-r-- 1 a staff 42G Mar 18 21:27 file4.1 

Другими словами, я вижу несколько filename.N , которые выглядят так, как будто они могут быть правильного размера, но сами файлы filename файлов явно слишком малы. В файле progress сообщается, что все файлы были загружены успешно:

 https://example.com/file1 done https://example.com/file2 done https://example.com/file3 done https://example.com/file4 done 

Я попросил человека, который сделал это доступным для меня, предоставить мне md5sums каждого файла, чтобы я мог видеть, действительно ли какие-либо файлы filename.N являются полными копиями. В то же время, могу ли я смело предположить, что filename.N с наибольшим значением N фактически является полной копией рассматриваемого файла?

Я предполагаю, что процесс wget был перезапущен несколько раз, и именно поэтому у меня есть .N файлы, но при условии, что && echo похоже, сработал, значит ли это, что файлы действительно были загружены правильно или могут быть && был выполнен даже для неполной загрузки?

2 Solutions collect form web for “Могу ли я доверять статусу выхода wget, даже если он был перезапущен?”

Вы можете посмотреть заголовки, отправленные сервером ( --server-response ), и если они включают Content-Length тогда wget выйдет только тогда, когда получит столько байтов. Это упоминается в man-странице для --ignore-length . Но md5 или другие суммы всегда хорошая идея!

Моя интерпретация https://www.gnu.org/software/wget/manual/wget.html

'–no-clobber' Если файл загружается более одного раза в один и тот же каталог, поведение Wget зависит от нескольких параметров, включая '-nc'. В некоторых случаях локальный файл будет сбрасываться или перезаписываться при повторной загрузке. В других случаях он будет сохранен.

При запуске Wget без '-N', '-nc', '-r' или '-p', загрузка одного и того же файла в том же каталоге приведет к сохранению оригинальной копии файла, а вторая копия будет иметь имя ' file.1. Если этот файл снова загружен, третья копия будет называться «file.2» и так далее.

… заключается в том, что wget помещает последние версии в .N-файлы и поэтому может быть доверен. Единственное, что можно было бы исключить, это переопределить WGETRC или другой глобальный wgetrc-файл.

  • Как отправить файл на FTP-сервер, который не приведет к успешному завершению соединения?
  • Почему wget --mirror не работает на этом сайте?
  • После загрузки файла .asp или .php его можно преобразовать в .html-файл?
  • Как использовать wget для загрузки определенных файлов из определенного каталога, когда сам каталог не имеет index.html?
  • bash не может найти команду mvn после установки
  • используя wget для загрузки всех аудиофайлов (более 100 000 страниц на wikia)
  • загрузка изображений с веб-страницы с различными ссылками
  • Как определить, куда перенаправляется ссылка
  • Может ли wget * печатать * URL-адреса зависимостей страниц?
  • завиток и wget отрезать URL-адрес
  • Как заставить wget загружать рекурсивное объединение --прихват с --exclude-каталогами?
  • Interesting Posts

    i3wm: как заставить несколько мониторов переключаться между рабочими областями в одной привязке

    Процесс, выполняемый как root, при выполнении mount, устанавливается для `self`, как сделать mount глобальным?

    Как навсегда заменить esc и caps lock в xfce / xubuntu?

    Как остановить dhclient от обновления resolvconf на Debian?

    PXEBoot UEFI не загружает файлы конфигурации

    Могу ли я повторно войти в отключенную сессию?

    программа, которая фильтрует имена файлов только для ASCII и исправляет ссылки на них

    Почему pwd не обновляется после удаления каталога?

    Как использовать переменные bash внутри make

    Как установить sfx-файлы в Debian

    Asterisk: использование шаблонов расширений с файлами вызовов

    Винный эквивалент для пакетов Linux на MacOS

    Резервная копия rsync не включает / boot и / home

    Как запустить сценарий при переключении между раскладками клавиатуры

    Есть ли LC_COLLATE, который сортирует точку перед тире?

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