Einweg-Synchronisierung / Sicherung mit Unison

12

Ich verwende das Synchronisierungstool Unison mit meinen Mac OSX- und Ubuntu 9.10-Computern, um meine Musik von Mac auf Ubuntu zu sichern. Die Sache ist, ich möchte, dass mein Mac die Quelle und Ubuntu das Ziel ist, damit die Ubuntu-Maschine jederzeit eine exakte Kopie des Musikordners auf dem Mac ist, aber wenn ich etwas aus Ubuntu lösche, hat es gewonnen. ' wird auf dem Mac nicht gelöscht. Ich habe mir die Dokumente angesehen, aber es geht mir im Moment irgendwie über den Kopf.

Roflwaffel
quelle

Antworten:

1

Ein besseres Tool für den Job ist möglicherweise rsync (Sie müssen es auf beiden Computern installieren). Ich verwende es, um meinen Laptop-Musikordner mit einem Home-Dateiserver synchron zu halten, was Ihrer Situation ziemlich ähnlich ist. rsync ist darauf spezialisiert, eine Spiegelkopie auf dem neuesten Stand zu halten.

Eine solche Befehlszeile kann nützlich sein (vorausgesetzt, Sie führen sie unter Ubuntu aus):

rsync -a --delete-before myMacMachineName:/MyMusic/ /mymusic/

Es ist ziemlich einfach, die obige Zeile umzuschalten, wenn Sie sie von Ihrem Mac ausführen und auf den Ubuntu-Computer übertragen möchten, anstatt sie zu ziehen.

TheToasterThatCould
quelle
32

Verwendung unison -force:

Handbuch:

Das Einbeziehen der Präferenz -force rootbewirkt, dass Unison alle Unterschiede (auch nicht widersprüchliche Änderungen) zugunsten von root auflöst. Dadurch wird Unison effektiv von einem Synchronisierer in ein Spiegelungsdienstprogramm umgewandelt. Sie können auch angeben -force newer(oder -force older), um Unison zu zwingen, die Datei mit der späteren (früheren) Modtime auszuwählen. In diesem Fall muss die -timesVoreinstellung ebenfalls aktiviert sein. Diese Einstellung wird von der forcepartialEinstellung überschrieben . Diese Einstellung sollte nur verwendet werden, wenn Sie sicher sind, dass Sie wissen, was Sie tun!

ZB (im Socket-Modus). Starten Sie den unisono Listener in dem Verzeichnis, in dem Sie ein Spiegel für etwas anderes sein möchten. Zielen Sie auf diesen Socket im unisono Client-Aufruf. Force bewirkt, dass alle Änderungen EINEN WEG von der angegebenen Wurzel entfernt sind.

cd /target/mirror/directory
unison -socket 123456 &

Anderswo oder auf demselben Host:

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/
Rich K.
quelle
1
Die Syntax für die Profildatei besteht darin, den Pfad zum Stammverzeichnis für die Force-Variable anzugeben. Dh,force = /home/me/mysynchdir
Daniel
2

Während die Antwort von TheToasterThatCould "funktioniert", beachten Sie bitte, dass das Mac-Dateisystem "Resource Forks" nicht korrekt gesichert wird.

Während die Mac OSX-Version von rsync ressourcenorientiert ist, sind Linux-Versionen von rsync dies nicht (und werden es wahrscheinlich auch nie sein), da die Apple-Version von rsync OSX-spezifisch ist und diese Ressourcengabeln rsync am anderen Ende in nicht präsentiert eine Möglichkeit, die eine Nicht-OSX-Version von rsync verarbeiten kann). Dies hat zur Folge, dass Ressourcengabeln nicht zwischen Mac- und Linux-Computern synchronisiert werden.

Bestimmte Mac-Apps verwenden Ressourcengabeln, um Daten zu speichern, die sich auf die jeweilige Datei beziehen. Wenn Sie sicher sind, dass Ihre zu synchronisierenden Dateien keine Ressourcengabeln benötigen oder verwenden, sollte es in Ordnung sein, rsync zu verwenden.

Wenn Sie Ressourcengabeln synchronisieren möchten, ist Unison der bessere Ansatz, da (laut Unison-Dokumenten) Ressourcengabeln synchronisiert werden können.

allnatürlich
quelle
0

FreeFileSync ist eine Open Source-Anwendung, die ein Verzeichnis spiegeln kann. Es kann für eine Einweg- oder Zweiweg-Synchronisation oder im "Beitrag" -Modus ausgeführt werden. Ich kann sagen, dass es die Arbeit von Microsoft Synctoy erledigen kann. FreeFileSync kann unter Mac OS X, Linux und Windows frei verwendet werden.

Teo
quelle
-1

Derzeit unison /home/test/thing2 /home/test/thing2 socket://somehost:123456/ -silent -batchwird funktionieren, wo überhaupt -batchkeine Fragen angezeigt werden

Jin
quelle