Você pode usar a combinação de tempo limite e novas opções:
curl --max-time <seconds> --retry <num>
--max-time
é o tempo total para obter o arquivo.
--retry
inicia uma nova tentativa após um erro de conexão ou o tempo limite.
Você também pode considerar as opções --connect-timeout
, --retry-max-time
e --retry-delay
. Veja man curl
para detalhes.