rsync delete e sincronização multi-máquina

0

Eu tenho a seguinte situação: Eu tenho várias máquinas clientes (por exemplo, client1, client2, client3) e gostaria de manter uma certa pasta ("/ code") sincronizada em todas as máquinas. Atualmente, tenho um script rsync configurado em um servidor separado para manter os arquivos sincronizados. Ou seja, no servidor, faço algo como o seguinte:

# Step 1: update/copy all files from each client to the server
rsync -vrtu client1:/code/ /code
rsync -vrtu client2:/code/ /code
rsync -vrtu client3:/code/ /code

# Step 2: synchronize each client with the server
rsync -vrtu /code/ client1:/code
rsync -vrtu /code/ client2:/code
rsync -vrtu /code/ client3:/code

Eu corro isso usando o cron e ele propaga as atualizações de arquivos em uma máquina para todas as máquinas. O problema é que as exclusões não são propagadas. Além disso, se eu entendi a opção rsync --delete corretamente, parece que o uso de --delete impediria que novos arquivos de meus clientes fossem adicionados ao servidor. Isso está correto? Gostaria apenas de manter os arquivos em todos os meus três clientes completamente sincronizados (adições, exclusões e modificações). Existe uma maneira simples de fazer o que eu quero usando o rsync?

    
por melchimm 02.03.2013 / 01:45

1 resposta

1

adicionando --delete ao rsync, apagará os arquivos que estão no lado de recebimento. Portanto, não haverá nada para sincronizar na etapa 2. Todos os novos arquivos nos clientes já terão desaparecido. Rsync --delete segmentará apenas o diretório sendo rsynced.

Você pode usar vários diretórios. Ou seja, use um diretório dedicado para novos arquivos nos clientes.

Você também deve considerar um sistema de controle de versão como o git, para esse tipo de sincronização de código. Dessa forma, você obtém mescla mais limpa se um arquivo no cliente for alterado. Você pode reverter, usar vários ramos diferentes, ver quem mudou o quê e muito mais.

No git, você usa um gancho de pós-recebimento para isso e faz o checkout da ramificação atual para o seu diretório de trabalho.

    
por 02.03.2013 / 02:02

Tags