Unison: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K (man mag es kaum glauben, jetzt auch mit Bild)
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Bild:Unison.jpg|thumb|Amarok Screenshot]]
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|repo=extra|paket=unison}}


Unison ist einfach zu konfigurieren, und dennoch sicher und flexibel.
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.


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.  
Des Weiteren werden grafische Oberflächen mitgeliefert, für die jedoch die Pakete {{ic|gtk}} bzw. {{ic|gtk2}} benötigt werden.


Beispiel Script:
== 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/electra.prf''' (Laptop)
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://pyros//home/hugo
follow = Path school
include common


'''~/.unison/pyros.prf''' (Desktop)
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: {{ic|~/.unison/default.prf}}. Dies sieht wie folgt aus.
root = /home/hugo
root = ssh://electra//home/hugo
follow = Path school
include common


'''~/.unison/common'''
  root = /pfad/zum/ordner
ignore = Regex .*(cache|Cache|te?mp|history|thumbnails).*
  root = ssh://foobar@example.com//pfad/zu/anderem/ordner
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


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


Wie man sieht, gibt es zwei verschiedene Profile, Laptop und Desktop.  
mv ~/.unison/default.prf ~/.unison/server.prf


Im diesem Beispiel benutzt man Bash-Aliase für den schnellen Einsatz:
Möchte man nun die gleichen Ordner ein zweites mal synchronisieren, reicht folgender Befehl.
  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):
unison server
  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' &


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


<!-- === rsync ===
unison /pfad/zum/ordner socket://example.com:X//pfad/zu/anderem/ordner (:X steht für den TCP-Port)
TODO!
 
!-->
=== 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]]
[[en:Unison]]

Aktuelle Version vom 4. Juli 2017, 11:11 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

Das Programm ist als unison in extra verfügbar, und kann von dort mittels 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 versandt 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