Duas perguntas sobre rsync - falha no meio do xfer e registro

Duas perguntas sobre rsync - falha no meio do xfer e registro

Estou trabalhando para implementar uma solução de backup de log que dependerá do uso do rsync para mover dados de um servidor local para um servidor de log remoto. Temos duas preocupações - a primeira é que até agora não implementei nenhum registro que precise ser feito. A página de manual do rsync é enorme e não estamos usando um servidor rsync, apenas um rsync oncall para enviar dados do cliente (iniciado pelo cliente) para o servidor de armazenamento.

Pensando bem, existe alguma opção de registro para falhas no meio da transferência ou algo parecido?

Além disso, devido à natureza de como o estamos implementando, o script shell primeiro tenta executar ping no servidor de backup local. Se o ping for bem-sucedido, ele carrega os arquivos. No entanto, se o ping não for bem-sucedido, ele será carregado em um servidor de backup com redundância geográfica. Isso deixa uma lacuna se o servidor principal cair no meio do rsync. Existe alguma maneira de especificar um destino de backup no caso de falha no meio da transferência?

Responder1

Não acho que o rsync tenha opções de failover integradas ou registro de erros especial (além do que é impresso no stderr). Ele possui --log-file=opções --log-file-format=, mas elas se concentram em registrar quais arquivos foram atualizados, não em falhas de conexão. O que eu recomendo é do lado do cliente, verificar o status de saída do rsync e se é um número de erro que indica um problema de conexão (parece que 10, 12 e 30 são os relevantes, mas o teste lhe dará uma ideia melhor) procure outro servidor acessível e tente novamente. Você também pode capturar a saída stderr do rsync e registrá-la diretamente ou verificar se há erros reconhecidos e resumi-los em seu log.

Se você quiser fazer logon no lado do servidor também, eu escreveria um script wrapper que executa o rsync normalmente ( rsync "$@"para passar pelos argumentos), depois verifica seu status de saída e registra isso. Certifique-se de que seu script não produza nada (para stdout ou stderr), ou pode confundir o cliente rsync remoto.

informação relacionada