Estou tentando sincronizar arquivos de um servidor remoto que não é confiável, o que significa que a conexão tende a falhar "aleatoriamente" com
rsync: conexão inesperadamente fechada
O Rsync é chamado com --partial, então eu gostaria de poder chamar o rsync em um loop até que os arquivos sejam totalmente transferidos. Não parece haver um sinalizador para dizer ao rsync para tentar novamente.
Qual seria a melhor maneira de escrever isso? Uma festança para loop?
Respostas:
Se você estiver sincronizando tudo em uma sincronização, chame o rsync em um loop até o rsync fornecer um código de retorno bem-sucedido.
Algo como:
Isso fará um loop, chamando rsync, até que ele forneça um código de retorno 0. Você pode adicionar um sono lá para impedir a DOSagem do servidor.
fonte
RC=12; while [[ $RC -eq 12 || $RC -eq 30 ]]
(ou qualquer status de saída que você esteja vendo das quedas na rede).Encontrei esse mesmo problema há algum tempo. No final, escrevi algo semelhante à resposta de David, mas tentei um pouco com o máximo de novas tentativas, respondendo ao Ctrl-C, e assim: http://blog.iangreenleaf.com/2009/03/rsync-and-retrying- até obtermos.html .
fonte
purtting tudo junto com sshpass
fonte