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