Para evitar as situações de --, -K/s , você pode usar --read-timeout=seconds . Isso fará o tempo limite da conexão após a quantidade de segundos.
Se você precisar ir além disso, você pode usar essa configuração
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
Isso tentará novamente conexões recusadas e erros fatais similares ( --retry-connrefused ), esperará 1 segundo antes da próxima tentativa ( --waitretry ), esperará um máximo de 20 segundos no caso de não haver os dados são recebidos e, em seguida, tente novamente ( --read-timeout ), ele esperará no máximo 15 segundos antes do tempo limite inicial da conexão ( --timeout ) e, finalmente, tentará um número infinito de vezes ( -t 0 ).
Você também pode querer colocar isso em um loop while para evitar falhas na rede local e similares. Nesse caso, você também precisa adicionar --continue para continuar o download de onde parou. O seguinte funciona bem no Bash
while [ 1 ]; do
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 --continue
if [ $? = 0 ]; then break; fi; # check return value, break if successful (0)
sleep 1s;
done;
Como dica de bônus, você também pode usar --no-dns-cache caso o host balance sua solicitação entre vários servidores pelo DNS.
Isenção de responsabilidade: Eu não recomendo usar isso, pois isso causará spam no host caso a conexão seja instável e não seja prudente deixá-la sem monitoramento. No entanto, é isso que você quer, caso precise realmente fazer o download de algo e sua conexão não funcione adequadamente.