Einseitige Synchronisierung / Sicherung mit Unison

14287
roflwaffle

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 ist und Ubuntu das Ziel ist, so dass der Ubuntu-Computer immer eine exakte Kopie des Musikordners auf dem Mac ist. Wenn ich jedoch etwas aus Ubuntu lösche, gewann es ' Sie werden auf dem Mac gelöscht. Ich habe mir die Dokumente angesehen, aber es geht mir im Moment irgendwie über den Kopf.

9

5 Antworten auf die Frage

28
Rich K.

Verwenden unison -force:

Handbuch:

Durch die Einbeziehung der Präferenz -force rootlöst Unison alle Unterschiede (auch nicht konfliktträchtige Änderungen) zugunsten von root auf. Dadurch wird Unison effektiv von einem Synchronizer in ein Spiegelungsprogramm 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 Präferenz wird durch die forcepartialPräferenz außer Kraft gesetzt . Diese Einstellung sollte nur verwendet werden, wenn Sie sicher sind, dass Sie wissen, was Sie tun!

ZB (im Socket-Modus). Starten Sie den Unison-Listener in dem Verzeichnis, in dem Sie etwas anderes spiegeln möchten. Richten Sie diesen Socket beim unisonalen Client-Anruf aus. Erzwingen bewirkt, dass alle Änderungen EINWEGE von der angegebenen Wurzel 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/ 
Die Syntax für die Profildatei gibt den Pfad zum Stammverzeichnis für die Force-Variable an. Dh "force = / home / me / mysynchdir" Daniel vor 6 Jahren 1
2
allnatural

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

Während die Mac OSX-Version von rsync ressourcenabhängig ist, sind die Linux-Versionen von rsync nicht (und werden es wahrscheinlich niemals sein), da die Apple-Version von rsync OSX-spezifisch ist und diese Ressource-Gabeln nicht für rsync auf der anderen Seite präsentiert eine Möglichkeit, mit der eine Nicht-OSX-Version von rsync umgehen kann). Dies hat zur Folge, dass Ressourcen-Gabeln nicht zwischen Mac- und Linux-Computern synchronisiert werden.

Bestimmte Mac-Apps verwenden Ressourcengabeln, um Daten zu speichern, die sich auf die bestimmte Datei beziehen. Wenn Sie sicher sind, dass Ihre Dateien, die Sie synchronisieren, keine Ressourcengabeln benötigen oder verwenden, ist die Verwendung von rsync in Ordnung.

Wenn Sie Ressourcen-Gabeln synchronisieren möchten, ist unisono der bessere Ansatz, da (gemäß unisonischen Dokumenten) Ressourcen-Gabeln synchronisiert werden können.

1
TheToasterThatCould

Ein besseres Werkzeug 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 Heim-Dateiserver zu synchronisieren, was Ihrer Situation ziemlich ähnlich ist. rsync ist darauf spezialisiert, eine Spiegelkopie auf dem neuesten Stand zu halten.

Eine Befehlszeile wie diese könnte nützlich sein (vorausgesetzt, Sie führen sie von 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 drücken möchten, anstatt zu ziehen.

0
dx486

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

-1
정진홍

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