Verzeichnisse in beide Richtungen mit rsync synchronisieren

25

Ich kenne rsyn und synchronisiere mit rsync zwischen meinem Mac und einem Linux-Server wie folgt.

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

Ich hatte erwartet, den ersten Befehl zum Synchronisieren auszuführen, aber ich brauchte den zweiten Befehl auch, wenn eine Änderung in LINUX vorgenommen wurde.

Vermisse ich etwas? Hat rsync eine Option zum Synchronisieren zwischen zwei Verzeichnissen?

Prosseek
quelle

Antworten:

20

Sie möchten eine bidirektionale Synchronisierung. Schauen Sie sich unisono, die dies tut: http://www.cis.upenn.edu/~bcpierce/unison/

Zum Beispiel unter Debian / Ubuntu:

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

Wenn Sie Probleme mit Berechtigungen haben (Beispiel 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
quelle
12

rsync wird von den Entwicklern nicht für die bidirektionale Synchronisierung empfohlen . Das bereits empfohlene Dienstprogramm unison ist eine bessere Lösung für Sie.

Denken Sie auch daran, dass Sie bei der Verwendung von rsync wahrscheinlich mit vielen Mac-spezifischen HFS + -Inhalten zu tun haben. Verwenden Sie daher unbedingt ein ordnungsgemäß gepatchtes rsync3 auf dem Mac oder erwarten Sie Probleme mit Änderungsdaten (wenn Sie das von Mac OS X bereitgestellte rsync 2.6.9 verwenden). Wenn Sie nicht wissen, wie Sie ein ordnungsgemäß gepatchtes rsync 3 für den Mac erstellen, Holen Sie sich mlbackup, das genau das beinhaltet. (Vollständige Offenlegung: Ich bin der Autor von mlbackup.) Laden Sie es von github herunter und stellen Sie sicher, dass Sie das vollständige Paket von den Downloads herunterladen. (Das mlbackup-Repo enthält nicht rsync 3, das Sie in diesem Fall benötigen.) Http://github.com/MacLemon/mlbackup

MacLemon
quelle
5
Ein Link zur Nichtempfehlung durch rsync-Entwickler wäre nett.
Wildcard
@Wildcard nicht von den Entwicklern, aber das ist relevant.
Ploni
4

Sie sollten sich auch csync ansehen , das Open Source ist und native bidirektionale Synchronisierung bietet.

Zu Ihrer Information - soweit ich weiß - wird csync von Leuten aus dem Samba-Team entwickelt. Und da ich weiß, dass das Samba-Team auch rsync entwickelt hat, verstehe ich dies als Qualitätsmerkmal.

maximd
quelle
2

Ein weiteres hervorragendes Tool für die bidirektionale Synchronisation ..... freefilesync

rsjethani
quelle
4
Bei Stack Exchange bevorzugen wir Antworten, die mehr als nur Links sind. Es wäre großartig, wenn Sie ein wenig unison
näher auf das eingehen
1

Ich habe dieses kleine Tool für meine eigenen Bedürfnisse programmiert:

https://github.com/dooblem/bsync

Es verwendet rsync und kann Dateiübertragungen verarbeiten.

Marc MAURICE
quelle