Você pode dizer a curl
para tentar novamente com a --retry
opção :
curl --retry 10 ...
tentará até dez vezes para fazer o download do URL fornecido.
Vale a pena verificar as várias opções --retry-...
relacionadas na documentação; dado que você está esperando erros, o algoritmo de backoff padrão pode não ser o ideal, então --retry-delay
será útil. Conforme mencionado por Sato Katsura , as opções de tempo limite também podem ser úteis ( --...-timeout
e --max-time
) .
Se isso falhar, porque curl
encontra um erro que não considera ser transitório, você pode usar um loop:
result=56
while [[ ${result} == 56 ]]; do
curl -C - ...
result=$?
done
Você pode adicionar um contador para limitar o número de loops.