rsync de dois servidores para um local comum

rsync de dois servidores para um local comum

Tenho dois servidores e quero rsyncarquivos 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 rsynco 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.

informação relacionada