Unison: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Wechseln zu: Navigation, Suche
(jaja, is halt aus dem englichen Wiki - erwischt :))
K
(13 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Bild:http://caml.inria.fr/about/successes-images/unison.jpg]]
+
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 ===
+
Unison ist für Unix-artige Betriebssysteme und Windows verfügbar, wird aber nicht mehr aktiv weiterentwickelt. Das Programm ist jedoch stabil und ausgereift.
URL: [http://www.cis.upenn.edu/~bcpierce/unison/ Unison]
+
  
Unison ist ein Programm für Windows und Linux zur Synchronisation von Dateien und Verzeichnissen auf verschiedenen Rechnern bzw. Festplatten/Datenträgern. Beim Abgleich werden nur Änderungen an den Daten synchronisiert, so dass ein erneuter Abgleich sehr schnell durchgeführt werden kann.
+
== Installation ==
 +
Unison befindet sich in <code>extra</code> und kann daher mit [[Pacman]] installiert werden.
  
Unison ist einfach zu konfigurieren, und dennoch sicher und flexibel.
+
pacman -S unison
  
Ssh und unison muss auf beiden Maschinen installiert sein. Mit ein paar einfachen Befehlen kann man nun Verzeichnisse synchronisieren, und in einer GUI können die Dateien und Verzeichnisse wählen, die man synchronisieren möchte.  
+
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.
  
Beispiel Script:
+
Des Weiteren werden grafische Oberflächen mitgeliefert, für die jedoch die Pakete <code>gtk</code> bzw. <code>gtk2</code> benötigt werden.
  
'''~/.unison/electra.prf''' (Laptop)
+
== Benutzung ==
root = /home/hugo
+
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.
root = ssh://pyros//home/hugo
+
follow = Path school
+
include common
+
  
'''~/.unison/pyros.prf''' (Desktop)
+
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)
root = /home/hugo
+
root = ssh://electra//home/hugo
+
follow = Path school
+
include common
+
  
'''~/.unison/common'''
+
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: <code>~/.unison/default.prf</code>. Dies sieht wie folgt aus.
ignore = Regex .*(cache|Cache|te?mp|history|thumbnails).*
+
ignore = Name sylpheed.log*
+
ignore = Name unison.log
+
ignore = Name .ICEauthority
+
ignore = Name .Xauthority
+
ignore = Path {.songinfo,.radinfo}
+
ignore = Path .adesklets
+
ignore = Path .Azureus
+
ignore = Path .forward
+
ignore = Path adesklets
+
ignore = Path .ethereal
+
ignore = Path .sheep
+
ignore = Path .xinitrc
+
ignore = Path .config
+
ignore = Path .xscreensaver
+
ignore = Path .xawtv
+
ignore = Path .radio
+
ignore = Path .forward
+
ignore = Path .dc++
+
ignore = Path .quodlibet
+
ignore = Path .tvtime
+
ignore = Path .config/graveman
+
ignore = Path .xmodmap
+
ignore = Path .java
+
ignore = Path .tvlist*
+
ignore = Path .thumbnails
+
ignore = Path .ssh
+
ignore = Path .viminfo
+
ignore = Path .vim/tmp
+
ignore = Path Desktop
+
ignore = Path .wine*
+
ignore = Path motion
+
ignore = Path src/ufobot/test_pipe
+
ignore = Path tmp
+
ignore = Path local
+
ignore = Path books
+
ignore = Path .mozilla/firefox/*/Cache*
+
ignore = Path .liferea/cache
+
ignore = Path .liferea/mozilla/liferea/Cache
+
ignore = Path .sylpheed-*/*.bak
+
ignore = Path .sylpheed-*/folderlist.xml*
+
ignore = Path .liferea/new_subscription
+
ignore = Path .mozilla/firefox/pluginreg.dat
+
ignore = Path .mozilla/firefox/*/lock
+
ignore = Path .mozilla/firefox/*/XUL.mfasl
+
ignore = Path .mozilla/firefox/*/xpti.dat
+
ignore = Path .mozilla/firefox/*/cookies.txt
+
ignore = Path .xbindkeysrc
+
ignore = Path .unison/ar*
+
ignore = Path .gaim/icons
+
ignore = Path .gaim/blist.xml
+
ignore = Path .asoundrc
+
ignore = Path .maillog
+
ignore = Path .openoffice2/.lock
+
  
 +
root = /pfad/zum/ordner
 +
root = ssh://foobar@example.com//pfad/zu/anderem/ordner
  
Wie man sieht, gibt es zwei verschiedene Profile, Laptop und Desktop.  
+
Das Profil kann nach Belieben umbenannt werden, solange es im Ordner <code>~/.unison</code> bleibt und die Dateiendung beibehält.  
  
Im diesem Beispiel benutzt man Bash-Aliase für den schnellen Einsatz:
+
mv ~/.unison/default.prf ~/.unison/server.prf
  unisync alias = "Unisono-gtk2 electra-contactquietly-Log-Datei /dev/null"
+
Bedeutet, man startet unisync mit dem Profil "Electra", wenn der Laptop syncronisiert werden soll.
+
  
Um die Verarbeitung zu automatisieren (zur Synchronisierung mit dem Laptop):
+
Möchte man nun die gleichen Ordner ein zweites mal synchronisieren, reicht folgender Befehl.
  xterm -e 'ping -q -W 2 -c 2 pyros && unison-gtk2 electra -contactquietly -logfile /dev/null && gxmessage -buttons no:0,yes:1 
+
  Syncing done. Shutdown pyros? || ssh pyros sudo halt' &
+
  
 +
unison server
  
<!-- === rsync ===
+
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.
TODO!
+
 
!-->
+
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 ==
 +
* [http://www.cis.upenn.edu/~bcpierce/unison/ Unison] {{sprache|en}}
 +
* [http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html Unison-Manual] {{sprache|en}}
 +
 
 +
[[Kategorie:Anwendungen]]

Version vom 16. Februar 2011, 10:03 Uhr

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