Você pode passar opções de SSH, como -o ConnectTimeout=10
para tempo limite após 10 segundos.
Mas se você estiver copiando vários arquivos, rsync
valerá a pena. E você provavelmente usaria --contimeout 10
para um comando rsync
.
Eu tenho um script bash que copia todos os arquivos em um diretório 'to_send', para um servidor remoto via scp
. O script executa um comando scp
em cada arquivo, verifica o código de retorno e move a versão local do diretório to_send para um diretório 'enviado', se for bem-sucedido. Se malsucedido, o arquivo permanecerá no diretório 'to_send', pronto para tentar enviar na próxima vez que o script for executado.
O scp
usa um URL e um número de porta não padrão para enviar por meio de uma conexão com a Internet. Eu tenho um problema em que, se a conexão com o servidor remoto não for possível, cada instância do comando scp
leva cerca de dois minutos para determinar que ele não pode se conectar. Esta não é uma sobrecarga terrível se houver apenas um arquivo para enviar, mas causará problemas se houver vários arquivos para enviar.
Existe uma maneira de limitar quanto tempo a tentativa de conexão continuará tentando? Talvez passando uma opção para ssh
com a opção -o
de scp
?
Você pode passar opções de SSH, como -o ConnectTimeout=10
para tempo limite após 10 segundos.
Mas se você estiver copiando vários arquivos, rsync
valerá a pena. E você provavelmente usaria --contimeout 10
para um comando rsync
.