Sincronizando diretórios nas duas direções com o rsync

25

Por acaso conheço o rsyn e uso o rsync para sincronizar entre o meu mac e um servidor linux da seguinte maneira.

rsync -r -t -v MAC LINUX
rsync -r -t -v LINUX MAC

Eu esperava executar o primeiro comando para sincronizar, mas também precisava do segundo comando quando uma alteração é feita no LINUX.

Estou esquecendo de algo? O rsync tem uma opção para sincronizar entre dois diretórios?

prosseek
fonte

Respostas:

20

Você deseja sincronização bidirecional. Veja o uníssono, que faz isso: http://www.cis.upenn.edu/~bcpierce/unison/

Por exemplo, no Debian / Ubuntu:

$ sudo apt-get install unison
$ unison MAC/ LINUX/

Se você tiver problemas com as permissões (exemplo ext4 -> FAT):

$ unison -perms 0 vlc-2.2.0/ /media/sf_vlc/vlc
Contacting server...
Looking for changes
Reconciling changes

vlc-2.2.0      vlc                
new dir  ---->            /  [f] 

Proceed with propagating updates? [] y
Propagating updates
jmtd
fonte
12

Na verdade, o rsync não é recomendado para sincronização bidirecional (por seus desenvolvedores). O utilitário uníssono já recomendado será uma solução melhor para você.

Lembre-se também de que você provavelmente precisará lidar com muitas coisas específicas do HFS + para Mac ao usar o rsync. Portanto, certifique-se de usar um rsync3 corrigido corretamente no Mac ou espere problemas com as datas de modificação (ao usar o Mac OS X fornecido o rsync 2.6.9.) Se você não souber como criar um rsync 3 corrigido corretamente para o Mac, obtenha mlbackup que inclui exatamente isso. (Divulgação completa: sou o autor do mlbackup.) Obtenha-o no github e faça o download do pacote completo a partir dos downloads. (O repositório mlbackup não inclui o rsync 3 que você deseja neste caso.) Http://github.com/MacLemon/mlbackup

MacLemon
fonte
5
Um link para a não recomendação dos desenvolvedores do rsync seria bom.
Curinga
@Wildcard não dos desenvolvedores, mas isso é relevante.
Ploni
4

Você também deve dar uma olhada no csync , que é de código aberto e oferece sincronização bidirecional nativa.

Para sua informação, até onde eu sei, o csync é desenvolvido por pessoas da equipe do Samba. E sabendo que a equipe do Samba também desenvolveu o rsync, tomo isso como um sinal de qualidade.

maximd
fonte
2

Outra excelente ferramenta para sincronização bidirecional ..... freefilesync

rsjethani
fonte
4
no Stack Exchange, preferimos respostas que são mais do que apenas links. seria ótimo se você pudesse expandir um pouco sobre o que é isso (o que o torna diferente de unison?)
strugee
1

Codifiquei essa pequena ferramenta para minhas próprias necessidades:

https://github.com/dooblem/bsync

Ele usa o rsync e pode lidar com a movimentação de arquivos.

Marc MAURICE
fonte