Unison

Aus wiki.archlinux.de

Mit Unison ist es möglich Dateien und Verzeichnisse zwischen Rechnern oder auch Datenträgern zu synchronisieren. Dabei überprüft Unison vor der eigentlichen Datenübertragung, ob überhaupt Änderungen vorliegen, wodurch das Programm sehr schnell arbeitet. Des Weiteren ist die Datenübertragung sicher, da SSH zum Einsatz kommen kann.

Unison ist für Unix-artige Betriebssysteme und Windows verfügbar, wird aber nicht mehr aktiv weiterentwickelt. Das Programm ist jedoch stabil und ausgereift.

Installation

Unison befindet sich in extra und kann daher mit Pacman installiert werden.

pacman -S unison

Außerdem empfiehlt es sich, sofern eine Synchronisation zwischen mehreren Computern erfolgen soll, Unison, sowie SSH auf allen Rechnern zu installieren, da so die Datenübertragung sicher ist und die Synchronisation schneller erfolgt, da keine Laufwerke eingehangen werden müssen.

Des Weiteren werden grafische Oberflächen mitgeliefert, für die jedoch die Pakete gtk bzw. gtk2 benötigt werden.

Benutzung

Unison wird im Terminal gestartet. Außerdem gibt man den Quell- bzw. Zielpfad für die Erstsynchronisation an. Die Pfade können sowohl lokal, als auch entfernt (z.B. auf einem Server) vorhanden sein. Beispielhaft wird nun die Synchronisation eines lokalen Ordners mit einem entfernten Ordner per SSH gezeigt. Dies funktioniert jedoch nur, wenn auf beiden Rechnern SSH und Unison installiert sind.

unison /pfad/zum/ordner ssh://foobar@example.com:X//pfad/zu/anderem/ordner (:X steht für den SSH-Port, wenn er eine andere Nummer als 22 hat)

Die Pfade werden nun synchronisiert, wobei ersterer der Quellpfad und letzterer der Zielpfad ist. Außerdem wird so auf dem Quellrechner ein Profil mit folgendem Pfad erzeugt: ~/.unison/default.prf. Dies sieht wie folgt aus.

root = /pfad/zum/ordner
root = ssh://foobar@example.com//pfad/zu/anderem/ordner

Das Profil kann nach Belieben umbenannt werden, solange es im Ordner ~/.unison bleibt und die Dateiendung beibehält.

mv ~/.unison/default.prf ~/.unison/server.prf

Möchte man nun die gleichen Ordner ein zweites mal synchronisieren, reicht folgender Befehl.

unison server

Für die lokale Synchronisation braucht man natürlich kein SSH. Es gibt außerdem noch die Methode der Netzwerksynchronisation über Sockets, diese ist jedoch unsicher, da dabei lediglich unverschlüsselte TCP/IP-Pakete versand werden. Allerdings läuft diese Methode auch in einer Umgebung, in der SSH z.B. wegen einer Firewall, die SSH blockiert, nicht funktioniert (im Notfall also immer). Der Befehl lautet dann wie folgt.

unison /pfad/zum/ordner socket://example.com:X//pfad/zu/anderem/ordner (:X steht für den TCP-Port)

Weitere Funktionen

In den Profildateien kann man zusätzliche Optionen eingeben. Hier ist ein Profil aus der unten angegebenen Manual.

# Roots of the synchronization
root = /home/bcpierce
root = ssh://saul//home/bcpierce

# Paths to synchronize 
path = current
path = common
path = .netscape/bookmarks.html

# Some regexps specifying names and paths to ignore
ignore = Name temp.*
ignore = Name *~
ignore = Name .*~
ignore = Path */pilot/backup/Archive_*
ignore = Name *.o
ignore = Name *.tmp

# Window height
height = 37

# Keep a backup copy of every file in a central location
backuplocation = central
backupdir = /home/bcpierce/backups
backup = Name *
backupprefix = $VERSION.
backupsuffix = 

# Use this command for displaying diffs
diff = diff -y -W 79 --suppress-common-lines

# Log actions to the terminal
log = true

In diesem Profil wird angegeben, dass einige Ordner bzw. Dateinamen ignoriert werden, dass ein BackUp jeder Synchronisation erstellt wird, dass Änderungen ausgegeben werden und dass ein Log erstellt wird. Außerdem gibt es eine Option für die grafischen Oberflächen. Eine vollständige Liste aller Optionen befindet sich im Manual.

Grafische Oberflächen

Die grafischen Oberflächen lassen wie folgt starten.

unison-gtk

bzw.

unison-gtk2

Die Bedienung ist, wenn man obige verstanden hat, selbsterklärend.

Links