Unison

Posted on Sat 14 July 2012 in linux • 2 min read

Dieser Artikel soll einen Überblick über mein aktuelles Unison-Setting liefern und allgemein die Konfiguration und Inbetriebnahme von Unison behandeln. Aber Schritt für Schritt.

Was ist Unison?

Unison ist ein freies Programm, mit dem man Ordner synchronisieren kann. Dabei können die Ordner auf dem selben Rechner sein, per Samba-Freigabe eingebunden sein, oder einfach über SSH erreichbar sein. Außerdem besteht die Möglichkeit, einen Unison-Dienst zu starten, welcher auf einem festgelegten Port lauscht und darüber synchronisiert. Unison ist für UNIX-artige Systeme sowie Windows verfügbar.

Installation und Konfiguration

Unison wird über das Paket unison bzw. unison-gtk installiert, danach ist die graphische Oberfläche über den Befehl unison verfügbar. Um zwei lokale Ordner synchron zu halten, ist nun nur noch Unison zu konfigurieren. Dies geschieht über die Graphische Oberfläche, sämtliche Schritte sollten selbsterklärend sein. Für den rein lokalen Abgleich ist nur unison-gtk erforderlich. Interessanter ist für die meisten jedoch die Synchronisierung über das Netzwerk.

Ich gehe hier davon aus, dass ein Rechner als Server dient und alle anderen Clients sind, welche mit dem Server synchronisieren. Auf dem Server wird das Paket unison sowie ein SSH-Server benötigt, sodass die Clients sich über SSH auf den Server verbinden können und dort den Server starten können. Es ist also nicht notwendig, dass Unison dauerhaft läuft. Auf den Clients muss man man das Paket unison-gtk installieren, es sollte zudem ein SSH-Client installiert sein. Es ist darauf zu achten, dass die Synchronisierung nur funktioniert, wenn auf jedem Rechner die gleiche Version von Unison installiert ist. Nun ist auf jedem Client ein SSH-Zertifikat zu erzeugen und der Public-Key dem Server bekannt zu machen (z.B. mit ssh-copy-id). Anschließend kann in Unison sehr einfach ein neues Profil angelegt werden, um die Synchronisierung zu starten, die kann beim ersten Mal je nach Datenmenge etwas dauern.

Etwas knifflig sind Windows-Clients, da es für diese keinen wirklich tollen SSH-Client gibt. Laut Unison Handbuch soll man Cygwin installieren, und dann den 'normalen' OpenSSH-Client nutzen, aber wer will schon eine ganze UNIX-Umgebung haben? Es geht also auch anders, und zwar mit plink und pagent, dies sind zwei Programme aus dem Putty-Umfeld, diese sind hier runterladbar. Zum erstellen eines Keys wird zudem noch PuttyGen benötigt. Wie das alles genau funktioniert, kann ich mittlerweile nicht mehr wirklich nachvollziehen, aber Google zeigt einem sehr brauchbare Ergebnisse an.

Meine Umgebung

Ich habe den Unison Server auf meinem RaspberryPi laufen, dieser stellt einen Teil der Daten auch per Samba-Freigabe zur Verfügung. Mit dem Server synchronisiere ich meinen Laptop, auf welchem Ubuntu 11.10 läuft sowie meinen Desktoprechner mit u.a. Windows XP. Diesen benötige ich hin und wieder für Arbeiten für die Uni, da bestimmte Programme nur für Windows verfügbar sind und eine virtuelle Maschine zu unpraktisch ist. Dieses Setting hat zudem den Vorteil, dass man bei komplexeren Arbeiten beide Computer gleichzeitig nutzen kann und die Daten mit wenigen Klicks synchron gehalten werden können. Da der RaspberryPi eh immer an ist, muss ich nicht noch vorher einen weiteren PC starten, dass war bis vor kurzem anders (Da gab es den ja noch nicht).

Links