Есть ли способ командной строки, с помощью которого я могу проверить, завершен ли или нет загруженный файл?

Я пишу сценарий, который включает в себя загрузку и управление файлом, и я хочу убедиться, что файл не является неполным (из-за, например, отброшенного соединения), прежде чем я начну работать над ним.

  • Wget или скручивание самозаверяющего сертификата с сервера
  • wget возвращает html-страницу вместо исходного файла
  • Возобновить зеркалирование через wget
  • wget не может быть убит с помощью 'kill -9'
  • Wget - получение рекурсивных URL-адресов из списка URL-адресов
  • Что такое wget-идиома для curl -o?
  • Bash: самый быстрый способ определения размеров изображения из URL-адреса
  • wget конвертировать файл tgz в HTML
  • 2 Solutions collect form web for “Есть ли способ командной строки, с помощью которого я могу проверить, завершен ли или нет загруженный файл?”

    Наиболее распространенным способом проверки целостности загруженных файлов является использование контрольных сумм MD5. Это предполагает, что сайт, который вы загружаете из фактически опубликованных контрольных сумм MD5 их файлов. Вы можете проверить контрольную сумму MD5, создав собственную контрольную сумму загруженного файла и сравнив ее с опубликованной контрольной суммой. Если они идентичны, файл, который вы загрузили, завершен и не подделан.

    Если вы не ожидаете, что файл, который вы загружаете для изменения, вы можете предварительно скопировать контрольную сумму и записать ее в скрипт, но если файл будет постоянно обновляться, проверка завершится неудачно.

    Чтобы создать контрольную сумму MD5 файла, запустите md5sum myFile . В случае с wget вы можете найти эту команду полезной, особенно если файл, который вы загружаете, большой:

    wget -O - http://example.com/myFile | tee myFile | md5sum > MD5SUM wget -O - http://example.com/myFile | tee myFile | md5sum > MD5SUM .

    Это создаст контрольную сумму «myFile» при загрузке и сохранит ее в файл MD5SUM, возможно, сэкономит вам некоторое время.

    В случае сброшенного соединения, я думаю, лучший способ – проверить коды выхода из wget. Если загрузка будет успешной без каких-либо ошибок, wget вернет 0 . Все остальное указывает, что что-то пошло не так. Взгляните на раздел «Статус выхода» man wget .

    Код возврата команды, используемой для загрузки файла, скажет вам, успешно ли выполнена команда. Как правило, код возврата 0 обозначает успех, а любое ненулевое число обозначает ошибку. Вы можете получить код возврата через $? переменная.

    Основной пример использования wget :

     #!/bin/bash wget foo.tgz &> /dev/null if [[ "$?" != 0 ]]; then echo "Error downloading file" else echo "Success" fi 

    &> /dev/null перенаправляет весь вывод wget на /dev/null поэтому он идеально подходит для сценариев, но это затрудняет отладку ошибок wget .

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