Unison eignet sich hervorragend für Synchronisierung und Transfer ganzer Verzeichnisstrukturen. Die Synchronisierung erfolgt in beide Richtungen und lässt sich intuitiv über eine grafische Oberfläche steuern. Eine Konsolenversion kann ebenfalls verwendet werden. Die Synchronisierung lässt sich auch automatisieren, damit keine Interaktion mit dem Benutzer anfällt. Dazu ist jedoch einige Erfahrung nötig.
Unison muss sowohl auf dem Client als auch auf dem Server installiert sein. Hier ist mit Server ein zweiter, entfernter Host gemeint (im Unterschied zu CVS, siehe Abschnitt 27.1.2, „CVS“).
Im folgenden Abschnitt wird Unison zusammen mit ssh verwendet. In diesem Fall muss ein SSH-Client auf dem Client und ein SSH-Server auf dem Server installiert sein.
Das Grundprinzip bei Unison ist, zwei Verzeichnisse (so genannte roots) aneinander zu binden. Diese Bindung ist symbolisch - es handelt sich nicht um eine Online-Verbindung. In diesem Beispiel ist das Verzeichnis-Layout wie folgt:
Client: |
|
Server: |
|
Diese beiden Verzeichnisse sollen synchronisiert werden. Auf dem Client ist der Benutzer als tux bekannt, auf dem Server dagegen als geeko
. Als Erstes soll getestet werden, ob die Kommunikation zwischen Client und Server funktioniert:
unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2
Die häufigsten Probleme, die hierbei auftreten können:
Die auf dem Client und Server eingesetzten Versionen von Unison sind nicht kompatibel.
Der Server lässt keine SSH-Verbindung zu.
Keiner der angegebenen beiden Pfade existiert.
Wenn alles funktioniert, lassen Sie die Option -testserver weg. Bei der ersten Synchronisierung kennt Unison die Beziehung zwischen den beiden Verzeichnissen noch nicht und macht von daher Vorschläge für die Übertragungsrichtung der einzelnen Dateien und Verzeichnisse. Die Pfeile in der Spalte geben die Übertragungsrichtung an. Ein Fragezeichen bedeutet, dass Unison keinen Vorschlag zur Übertragungsrichtung machen kann, da beide Versionen in der Zwischenzeit geändert wurden bzw. neu sind.
Mit den Pfeiltasten können Sie die Übertragungsrichtung für jeden Eintrag einstellen. Stimmen die Übertragungsrichtungen für alle angezeigten Einträge, dann klicken Sie einfach auf
.
Das Verhalten von Unison (z. B., ob in eindeutigen Fällen die Synchronisierung automatisch durchgeführt werden soll) lässt sich beim Programmstart mithilfe von Befehlszeilenparametern steuern. Eine komplette Liste aller Parameter liefert unison --help
.
Beispiel 27.1. Die Datei ~/.unison/example.prefs
root=/home/tux/dir1 root=ssh://wilber@server//homes/wilber/dir2 batch=true
Für jede Bindung wird im Benutzerverzeichnis ~/.unison
ein Synchronisierungsprotokoll geführt. Konfigurationssets, wie ~/.unison/example.prefs
, können ebenfalls in diesem Verzeichnis gespeichert werden. Um die Synchronisierung zu starten, geben Sie diese Datei als Befehlszeilenparameter an, wie in unison example.prefs
.
Die offizielle Dokumentation zu Unison ist äußerst nützlich. Daher gibt dieser Abschnitt nur eine kurze Einführung. Das vollständige Handbuch steht unter http://www.cis.upenn.edu/~bcpierce/unison/ und mit dem SUSE-Paket unison
zur Verfügung.