Synchronisation des répertoires dans les deux sens avec rsync

25

Il se trouve que je connais rsyn, et j'utilise rsync pour synchroniser entre mon mac et un serveur linux comme suit.

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

Je m'attendais à exécuter la première commande pour synchroniser, mais j'avais également besoin de la deuxième commande lors d'une modification dans LINUX.

Suis-je en train de manquer quelque chose? Rsync a-t-il une option pour synchroniser entre deux répertoires?

prosseek
la source

Réponses:

20

Vous voulez une synchronisation bidirectionnelle. Jetez un œil à l'unisson, qui fait ceci: http://www.cis.upenn.edu/~bcpierce/unison/

Par exemple, sur Debian / Ubuntu:

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

Si vous rencontrez des problèmes avec les autorisations (exemple 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
la source
12

rsync n'est en fait pas recommandé pour la synchronisation bidirectionnelle (par ses développeurs). L'utilitaire unison déjà recommandé sera une meilleure solution pour vous.

Gardez également à l'esprit que vous devrez probablement gérer beaucoup de choses HFS + spécifiques à Mac lors de l'utilisation de rsync. Assurez-vous donc d'utiliser un rsync3 correctement corrigé sur le Mac ou attendez-vous à des problèmes avec les dates de modification (lorsque vous utilisez le rsync 2.6.9 fourni par Mac OS X). Si vous ne savez pas comment créer un rsync 3 correctement corrigé pour le Mac, obtenez mlbackup qui inclut juste cela. (Divulgation complète: je suis l'auteur de mlbackup.) Obtenez-le sur github et assurez-vous de télécharger le package complet à partir des téléchargements. (Le dépôt mlbackup n'inclut pas rsync 3 que vous souhaitez dans ce cas.) Http://github.com/MacLemon/mlbackup

MacLemon
la source
5
Un lien vers la non-recommandation des développeurs rsync serait bien.
Wildcard
@Wildcard pas des développeurs, mais c'est pertinent.
Ploni
4

Vous devriez également jeter un œil à csync , qui est open source et propose une synchronisation bidirectionnelle native.

Pour info - pour autant que je sache - csync est développé par des personnes de l'équipe Samba. Et sachant que l'équipe Samba a également développé rsync, je prends cela comme un gage de qualité.

maximd
la source
2

Un autre excellent outil pour la synchronisation bidirectionnelle ..... freefilesync

rsjethani
la source
4
sur Stack Exchange, nous préférons les réponses qui sont plus que de simples liens. ce serait génial si vous pouviez développer un peu ce que c'est (qu'est-ce qui le différencie unison?)
strugee