Unison ist hervorragend für den Abgleich und Transfer ganzer Verzeichnisbäume geeignet. Der Abgleich findet in beide Richtungen statt und lässt sich intuitiv über eine grafische Oberfläche steuern (alternativ kann aber auch die Konsolen-Version verwenden). Der Abgleich lässt sich auch automatisieren (das heißt keine Interaktion mit dem Benutzer), wenn man weiß, was man tut.
Unison muss sowohl auf dem Client, als auch auf dem Server installiert sein, wobei mit Server ein zweiter, entfernter Rechner gemeint ist (im Gegensatz zu CVS, siehe Abschnitt 47.1.2, „CVS“).
Da wir uns im Folgenden auf die Benutzung von Unison mit SSH beschränken, 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 zu verstehen, es handelt sich also nicht um eine Online-Verbindung. Angenommen, wir haben folgendes Verzeichnis-Layout:
Client: |
|
Server: |
|
Diese beiden Verzeichnisse sollen synchronisiert werden. Auf dem Client ist
der User als tux bekannt, auf dem Server dagegen als geeko. Zunächst sollte ein Test durchgeführt
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 beiden angegebenen Pfade existiert
Funktioniert soweit alles, lässt man die Option
-testserver weg. Bei der Erstsynchronisierung kennt
Unison das Verhältnis der beiden Verzeichnisse
noch nicht und macht von daher Vorschläge für die Transferrichtung der
einzelnen Dateien und Verzeichnisse. Die Pfeile in der Spalte
Action geben die Transferrichtung an. Ein '?'
bedeutet, dass Unison keinen Vorschlag bzgl. der
Transferrichtung machen kann, da beide Versionen in der Zwischenzeit
verändert wurden bzw. neu sind.
Mit den Pfeiltasten kann man die Transferrichtung für jeden Eintrag einstellen. Stimmen die Transferrichtungen für alle angezeigten Einträge, dann klickt man auf .
Das Verhalten von Unison (zum Beispiel ob in
eindeutigen Fällen die Synchronisation automatisch durchgeführt werden
soll), lässt sich beim Starten per Kommandozeilenparameter steuern. Eine
komplette Liste aller Parameter liefert
unison –help.
Beispiel 47.1. The file ~/.unison/example.prefs
root=/home/tux/dir1 root=ssh://wilber@server//homes/wilber/dir2 batch=true
Über die Synchronisation wird für jede Bindung im Benutzer-Verzeichnis
~/.unison Protokoll geführt. In diesem Verzeichnis
lassen sich auch Konfigurationssets ablegen, wie in
~/.unison/example.prefs.
Um die Synchronisation anzustoßen, genügt es dann einfach,
diese Datei als Kommandozeilenargument anzugeben:
unison example.prefs
Die offizielle Dokumentation zu Unison ist
äußerst umfangreich; in diesem Abschnitt wurde nur eine Kurzeinführung
dargestellt. Unter http://www.cis.upenn.edu/~bcpierce/unison/ bzw. im SUSE-Paket
unison ist ein komplettes Handbuch verfügbar.