Tenho dois servidores e quero rsync
arquivos de ambos os servidores em um único local.
- O servidor 1 possui arquivos A e B
- O servidor 2 possui arquivos A e B
- Depois que
rsync
o servidor 3 tiver os arquivos A e B
Quando um usuário exclui o arquivo A do servidor 1 e o arquivo B do servidor2, o servidor 3 não deve conter nenhum arquivo.
Mas não está funcionando corretamente na minha configuração:
rsync --delete server1 server3
rsync --delete server2 server3
Ele exclui A primeiro e B depois, mas A será copiado novamente do servidor 2. Em vez de obter o diretório vazio, acabo novamente com A.
Alguém tem uma solução para isso?
Responder1
O comando rsync que você está executando está tornando o server3 uma cópia estrita de qualquer servidor de onde ele está copiando. Então ele se torna um clone do servidor1 (com A faltando e B lá), então você diz que ele é um clone do servidor2 (com A lá e B faltando)
Você pode voltar um nível e explicar o que pretende fazer aqui?
Responder2
Você tentou
rsync -u --delete server1 server3
rsync --delete server2 server3
Na página de manual do rsync:
-u, --update update only (don’t overwrite newer files)
Seja o servidor1 ou o servidor2 quem faz a sincronização primeiro, ele respeitará se o arquivo já estiver no servidor3.
Observe, entretanto, que você deve colocar seus comandos rsync em um script e colocar um arquivo de sinalização para indicar que a sincronização não será executada se o outro estiver em execução.
Deixe-me saber se isso ajuda.