47.3. Einführung in Unison

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.

47.3.1. Voraussetzungen

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.

47.3.2. Bedienung

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:

/home/tux/dir1

Server:

/home/geeko/dir2

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 Go.

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

47.3.3. Weiterführende Literatur

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.