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.