Inicie o daemon do Rsync para sincronizar um diretório entre dois servidores

5

Eu quero sincronizar um diretório no servidor A com um servidor B.

No servidor A, criei um arquivo rsyncd.conf com o conteúdo:

uid             = rsync
gid             = rsync
use chroot      = no
pid file        = /var/run/rsyncd.pid

[share]
  comment = share
  path = /etc/dirtosync
  read only = false
  list = yes
  hosts allow = *
  auth users = rsync
  secrets file = /etc/rsyncd.secrets

E criei no servidor A o arquivo /etc/rsyncd.secrets com o conteúdo:

rsync:rsync

Eu também criei no servidor A o arquivo pid, e o usuário rsync com a senha rsync.

No servidor A, no arquivo: /etc/default/rsync coloquei o valor RSYNC_ENABLE em true e iniciei o daemon rsync com o comando:

/etc/initd/rsync start

No servidor A e no servidor B o proprietário e o grupo do diretório é o rsync.

Eu lancei na máquina B o comando:

rsync -avzr rsync@<serverA>:/etc/dirtosync/* /etc/dirtosync/

Eu também tentei no servidor A o comando

rsync -avzr /etc/dirtosync/* rsync@<serverB>:/etc/dirtosync/

Com esses dois comandos, o resultado é o mesmo: os arquivos são sincronizados apenas uma vez quando eu inicio o comando, mas depois, se eu modificar os arquivos no servidor A, eles não são sincronizados com o servidor B

Preciso fazer outra coisa para manter o arquivo sincronizado?

    
por hedi691 06.05.2014 / 00:06

3 respostas

4

Você entendeu mal como o rsync funciona. O rsync não replica automaticamente as alterações - não é como software dropbox ou semelhante. O rsync sincroniza apenas os arquivos uma vez a cada vez que é executado. Se você quiser sincronizar com mais freqüência, então coloque o comando rsync em um script cron (por exemplo, veja em /etc/cron.daily ). Se você quiser algo que sincronize automaticamente as alterações, como acontece com o dropbox, veja um projeto diferente, como Sparkle Share ou ownCloud .

    
por bain 06.05.2014 / 02:17
0

A sintaxe rsync que você postou funciona supondo que você omitiu o nome de host / IP da máquina, mas não usa o rsync que você configurou. Para usar o compartilhamento, você precisaria alterar sua sintaxe da seguinte maneira para usar o compartilhamento:

rsync -av rsync@MACHINE-A::share/ /etc/dirtosync/

No entanto, isso ainda não configurará uma sincronização contínua entre essas pastas. O que você parece ser depois é uma sincronização bidirecional para essas pastas, que é algo que você pode configurar no cron ou começar a usar Software de sincronização de arquivos Unison .

O uníssono não é mais bem mantido, e eu mesmo não o usei, mas ouvi grandes coisas sobre ele. Ele controla as alterações feitas nos arquivos feitos em um diretório que você configurou para sincronização e copia periodicamente esses arquivos usando rsync ou outro método (configurável).

Se você for usar a rota rsync -in-the-cron, convém usar a opção -u , que informa ao rsync para copiar apenas os arquivos mais recentes. Você encontrará problemas com arquivos excluídos reaparecendo com essa abordagem, no entanto.

    
por jkt123 06.05.2014 / 02:14
0

Você também pode usar o lsyncd: link . Estou usando até agora e é ótimo para isso.

    
por Marcos Andrei Ivanechtchuk 15.08.2017 / 21:49