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

Некоторые источники говорят:

Aquire 5,6 информации о хранилище с веб-сайта Redhat, затем сделайте

# yum update

Хотя в документации RHEL, хотя не очень ясный, говорится, чтобы использовать CD/установщик и выбрать опцию "обновления". Посмотрите Общие задачи (глава 24).

13
07.06.2014, 16:16
2 ответа

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

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

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

wget -O - http://example.com/myFile | тройник myFile | md5sum> MD5SUM .

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

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

10
27.01.2020, 19:53

Код возврата команды, использованной для загрузки файла, скажет, успешно выполнилась команда или нет. Обычно код возврата 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 более сложной.

7
27.01.2020, 19:53

Теги

Похожие вопросы