curl --retry: повторить загрузку при временной ошибке
curl умеет повторять запросы после временных сетевых ошибок и некоторых HTTP-статусов. Задайте лимит попыток, общий таймаут и временный файл, чтобы неполная загрузка не выглядела готовой.
Рабочий пример
curl --fail --location --connect-timeout 5 --max-time 120 --retry 4 --retry-all-errors --retry-delay 2 --output archive.zip.part https://downloads.example.net/archive.zip
mv archive.zip.part archive.zip--fail возвращает ошибку на HTTP 4xx/5xx, --location следует редиректам, а --connect-timeout ограничивает ожидание соединения. Если сервер поддерживает range, можно использовать --continue-at -.
Частый вопрос
Как учитывать Retry-After при 429?
Проверьте поддержку соответствующих опций в man curl установленной версии. Для точного контроля считайте Retry-After отдельно и задайте задержку явно.