%
% Achtung: Dateien muessen mit latin1-Encoding gespeichert werden!
% Attention: Files must be saved using latin1 encoding!
%

\chapter{Unison - File Synchronizer} 
\emph{Ab Version 0.1.6 - Stand 24.04.2007} 
 
\section{Allgemeines}
Unison ist ein Werkzeug f"ur die Datei-Synchronisation unter Unix und
Windows. Es erm"oglicht es, zwei Kopien einer Ansammlung von Dateien
und Verzeichnissen auf getrennten Rechnern (oder getrennten Laufwerken
eines einzelnen Rechners) unabh"angig voneinander zu modifizieren und
anschlie"send beide Kopien mit dem jeweils aktuellen Stand der Gegenseite
abzugleichen. Dabei werden die "Anderungen jeder Kopie auf die jeweils
andere Kopie "ubertragen.

Unison hat eine Reihe von Eigenschaften mit Werkzeugen wie Versions-
verwaltungen (CVS, PRCS, Subversion), verteilten Dateisystemen (Coda,
etc.), Hilfsmitteln zur einseitigen Dateispiegelung (rsync, etc.) und
Synchronisierern (Intellisync, Reconcile, etc) gemeinsam. Es gibt jedoch 
auch eine Reihe von Unterschieden:
 
\begin{itemize} 
\item Unison ist sowohl auf Windows als auch auf vielen Unix Derivaten
lauff"ahig (Solaris, Linux, OS X, etc.). Zudem arbeitet Unison
plattform"ubergreifend, wodurch beispielsweise ein Windows Laptop
mit einem Unix-Server synchronisiert werden kann.

\item Im Gegensatz zu vielen Spiegelungs- oder Sicherungsprogrammen,
kann Unison mit "Anderungen in beiden Kopien einer verteilten
Verzeichnisstruktur umgehen. "Anderungen, die keinen Konflikt
erzeugen, werden automatisch "ubertragen. Konflikte dagegen werden
erkannt und dargestellt.

\item Ungleich eines verteilten Dateisystems ist Unison ein Werkzeug,
das auf der Anwenderschicht des Betriebsystems l"auft und daher weder
eine Kernel-Modifikation noch Administratorrechte erfordert.

\item Unison arbeitet zwischen paarweise "uber das Internet verbundenen
Rechnern entweder "uber eine direkte Socket-Verbindung oder "uber
einen verschl"usselten SSH-Tunnel. Es geht sorgsam mit der Netzwerk\-
bandbreite um und l"auft auch noch "uber langsame PPP-Verbindungen
reibungslos. "Ubertragungen von kleinen "Anderungen an gro"sen Dateien
werden durch ein Kompressionsprotokoll optimiert, das identisch
mit rsync ist.

\item Unison ist sehr fehlertolerant. Es achtet sorgf"altig darauf, dass
die Kopien und seine eigenen Strukturen jederzeit in einem g"ultigen
Zustand bleiben, sogar im Falle eines unerwarteten Abbruchs oder
bei "Ubertragungsfehlern.

\item Unison hat eine klare und pr"azise Spezifikation. Der Quellcode ist
frei verf"ugbar und steht unter der GPL Lizenz.
\end{itemize}

Quelle: http://www.cis.upenn.edu/~bcpierce/unison/


\section{Installation}
Zur Installation dieses Paketes ist die eisfair-Base-Version 1.1.0
oder h"oher notwendig. Zudem wird das Inet-Paket vorausgesetzt, da dieses 
f"ur SSH ben"otigt wird.

Soll Unison zur Synchronisation von Daten zwischen Rechnern im Netzwerk 
verwendet werden, so ist darauf zu achten, dass auf allen Rechnern die 
selbe Version von Unison eingesetzt wird. Die Installation selbst wird 
auf die bekannte Weise "uber das Setup-Men"u vorgenommen.

\section{Konfiguration}
Bei der Einrichtung von Unison ist darauf zu achten, dass, falls nicht
nur lokal synchronisiert werden soll, auf beiden Synchronisationspartnern 
Unison installiert sein muss.

W"ahrend des Abgleichs "ubernimmt einer der beiden Partner die Client Rolle
(steuert den Ablauf und erzeugt Textausgaben) w"ahrend der andere
Rechner die Server-Rolle einnimmt und lediglich den Client bedient.
Daraus ergibt sich, dass auf der Client-Seite die Wurzelverzeichnisse
zur Synchronisation konfiguriert werden m"ussen und auf der Server-Seite
lediglich sichergestellt sein muss, dass der Client auf das Unison-
Programm ("uber ssh oder den Socket-Daemon) Zugriff hat.

Die Konfiguration kann "uber den Men"upunkt ''Edit configuration''
ge"andert werden. Es gibt folgende Einstellungsm"oglichkeiten um
das Verhalten des Programms zu steuern:

\begin{description}

\config{START\_UNISON}{START\_UNISON}{STARTUNISON} 
    Gibt an, ob Unison als Dienst gestartet werden soll, der Anfragen
    "uber einen TCP/IP-Port annimmt. Ist diese Option aktiviert, kann
    sehr einfach von einem entfernten Computer aus eine Synchronisation
    mit diesem Rechner vorgenommen werden.
    
    BITTE BEACHTEN: Unison als Dienst stellt ein erhelbliches Sicherheitsrisiko 
    dar, da jeder Angreifer mit einer lauff"ahigen Version
    von Unison auf den Rechner zugreifen kann. Es wird daher empfohlen
    den Dienst zudeaktivieren und statt dessen "uber SSH auf den Rechner
    zuzugreifen.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DAEMON\_PORT}{UNISON\_DAEMON\_PORT}{UNISONDAEMONPORT} 
    TCP/IP-Port auf dem der Unison-Dienst auf Anfragen lauschen soll.
    Dieser Wert wird ignoriert, wenn START\_UNISON den Wert ''no''
    besitzt.

    Beispiel: \emph{''3000''}


\config{UNISON\_MAIL\_NOTIFY}{UNISON\_MAIL\_NOTIFY}{UNISONMAILNOTIFY}
    Hiermit wird eingestellt, ob unison seine Aktivit"aten in Form von
    E-Mails weiterleiten soll oder nicht. Wird hier ''no'' vorgegeben,
    dann erfolgt keine Benachrichtigung und man muss statt dessen
    das Protokoll (/var/log/unison.log) pr"ufen.

    Achtung: Nur wenn "Anderungen abgeglichen werden, steht auch ein
    Protokoll zur Verf"ugung. Sind die Kopien identisch erfolgt keine
    Benachrichtigung.

    Ebenfalls zu beachten ist, dass diese Benachrichtigung nat"urlich
    nur funktioniert, wenn das Mail-Paket auf dem Rechner installiert
    und korrekt konfiguriert ist.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_MAIL\_ONERROR}{UNISON\_MAIL\_ONERROR}{UNISONMAILONERROR}
    Mit dieser Option kann die E-Mail-Benachrichtigung so eingeschr"ankt
    werden, dass lediglich Fehlversuche als E-Mail versendet werden.
    Erfolgsmeldungen dagegen unterbleiben.

    BITTE BEACHTEN: Die Einstellung hat nur dann einen Effekt, wenn
    UNISON\_MAIL\_NOTIFY den Wert ''yes'' besitzt.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_MAIL\_ADDR}{UNISON\_MAIL\_ADDR}{UNISONMAILADDR}
    Die hier angegebene E-Mail-Adresse wird verwendet um nach einer
    automatischen Synchronisation (per Cron) dem verantwortlichen
    Administrator das Ablaufprotokoll von Unison zukommen zu lassen.

    BITTE BEACHTEN: Die Einstellung hat nur dann einen Effekt, wenn
    UNISON\_MAIL\_NOTIFY den Wert ''yes'' besitzt.

    Beispiel: \emph{''backup.admin@mydomain.local''}


\config{UUNISON\_DIR\_N}{UNISON\_DIR\_N}{UNISONDIRN} 
    Anzahl von Wurzelverzeichnissen, die entwerder mit lokalen oder mit
    verteilten Kopien synchronisiert werden sollen. Die hier angegebenen
    Verzeichnisse k"onnen anschlie"send entwerder zeitgesteuert oder
    manuell miteinander abgeglichen werden.

    Beispiel: \emph{''1''}


\config{UNISON\_DIR\_x\_NETSYNC}{UNISON\_DIR\_x\_NETSYNC}{UNISONDIRxNETSYNC}
    Legt fest, ob die Synchronisation auf dem lokalen Rechner oder "uber
    das Netzwerk mit einer entfernten Maschine stattfinden soll.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_HOST}{UNISON\_DIR\_x\_HOST}{UNISONDIRxHOST}
    Name des Rechners, auf dem die verteilte Kopie eines lokalen
    Verzeichnisses liegt.

    BITTE BEACHTEN: Dieser Parameter wird nur dann beachtet, wenn die
    Variable UNISON\_DIR\_x\_NETSYNC den Wert ''yes'' besitzt.

    Beispiel: \emph{''backup.home.lan''}


\config{UNISON\_DIR\_x\_USESSH}{UNISON\_DIR\_x\_USESSH}{UNISONDIRxUSESSH}
    Zugriffsmethode auf den entfernetn Rechner. Wird dieser Wert auf ''yes''
    gestellt, dann wird "uber die Secure Shell auf den entfernten Rechner
    zugegriffen, auf dem der ssh-Daemon ausgef"uhrt werden muss, damit
    die Verbindung funktioniert.
    Der Zugriff "uber SSH ist die bevorzugte Methode, da sie die Daten
    verschl"usselt austauscht und einen Anmeldemechanismus auf dem entfernten 
    Rechner verlangt. Allerdings muss ein dsa Schl"usselpaar erzeugt
    und mit dem Partnerrechner ausgetauscht werden, damit die Synchronisation 
    auch automatisch ohne Kennworteingabe funktioniert.

    BITTE BEACHTEN: Dieser Parameter wird nur dann beachtet, wenn die
    Variable UNISON\_DIR\_x\_NETSYNC den Wert ''yes'' besitzt.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_SSHPORT}{UNISON\_DIR\_x\_SSHPORT}{UNISONDIRxSSHPORT}
    Die Port-Nummer, auf der der SSH-Dienst des entfernten Rechners auf
    Anfragen wartet. Der Standardwert f"ur SSH ist '22'.

    BITTE BEACHTEN: Dieser Parameter wird nur dann beachtet, wenn die
    Variable UNISON\_DIR\_x\_NETSYNC den Wert ''yes'' besitzt.

    Beispiel: \emph{''22''}


\config{UNISON\_DIR\_x\_SSHUSER}{UNISON\_DIR\_x\_SSHUSER}{UNISONDIRxSSHUSER}
    Benutzerkonto "uber das der SSH-Zugriff auf die entfernte Maschine
    erfolgen soll. Dieser Wert wird ignoriert, wenn UNISON\_DIR\_x\_METHOD
    auf 'ssh' eingestellt ist.

    BITTE BEACHTEN: Die automatische Synchronisation mittels des CRON-
    Dienstes ist nur dann "uber SSH sinnvoll, wenn eine Anmeldung ohne
    Kennworteingabe m"oglich ist. Dazu ist ein dsa-Schl"ussel zu erzeugen
    und auf dem entfernten Rechner unter 'authorized\_keys' abzulegen.
    Zudem ist darauf zu achten, dass der mit SSHUSER angegebene Anwender
    auf der entfernten Maschine ausreichende Zugriffsrechte auf das
    Dateisystem hat.

    BITTE BEACHTEN: Dieser Parameter wird nur dann beachtet, wenn die
    Variable UNISON\_DIR\_x\_NETSYNC den Wert ''yes'' besitzt.

    Beispiel: \emph{''root''}


\config{UNISON\_DIR\_x\_SSHCOMPRESS}{UNISON\_DIR\_x\_SSHCOMPRESS}{UNISONDIRxSSHCOMPRESS}
    "Uber diesen Schalter kann die Datenkompression f"ur SSH-Verbindungen
    aktiviert werden. SSH verwendet dabei den Kompressionsalgorithmus
    von gzip und kann damit die Synchronisation "uber das Netzwerk beschleunigen. 
    Da jedoch zugleich die Reaktionszeiten l"anger werden,
    macht die Aktivierung dieser Option nur f"ur Verbindungen mit
    niedrigen Bandbreiten Sinn.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_USESOCKET}{UNISON\_DIR\_x\_USESOCKET}{UNISONDIRxUSESOCKET}
    Zugriffsmethode auf den entfernetn Rechner. Wird dieser Wert auf ''yes''
    gestellt, dann wird "uber den unison socket daemon zugegriffen, der auf
    dem entfernten ausgef"uhrt werden muss, damit die Verindung funktioniert.
    Diese Zugriffsmethode ist sehr viel einfacher einzurichten als die
    SSH-Variante, da man sich nicht um die SSH-Authentifizierung k"ummern
    muss. Allerdings ist sie auch sehr viel unsicherer, da zum einen die
    Daten unverschl"usselt ausgetauscht werden und zum anderen der Socket-
    Dienst ohne Anmeldung den Zugriff auf Dateien des entfernten Rechners
    zul"asst.

    BITTE BEACHTEN: Dieser Parameter wird nur dann beachtet, wenn die
    Variable UNISON\_DIR\_x\_NETSYNC den Wert ''yes'' besitzt.

    BITTE BEACHTEN: Es kann nur entweder USESSH oder USESOCKET gew"ahlt
    werden. Die Parameter schlie"sen sich gegenseitig aus.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_SOCKPORT}{UNISON\_DIR\_x\_SOCKPORT}{UNISONDIRxSOCKPORT}
    Port auf dem der entfernte Unison-Dienst auf Anfragen wartet. Dieser
    Wert wird ignoriert, wenn UNISON\_DIR\_x\_METHOD auf 'ssh' eingestellt
    ist.

    BITTE BEACHTEN: Dieser Parameter wird nur dann beachtet, wenn die
    Variable UNISON\_DIR\_x\_NETSYNC den Wert ''yes'' besitzt.

    Beispiel: \emph{''3000''}


\config{UNISON\_DIR\_x\_LOCAL}{UNISON\_DIR\_x\_LOCAL}{UNISONDIRxLOCAL} 
    Pfad des lokalen Verzeichnisses, das mit einer verteilten Kopie abgeglichen 
    werden soll.

    Beispiel: \emph{''/data/files''}


\config{UNISON\_DIR\_x\_REMOTE}{UNISON\_DIR\_x\_REMOTE}{UNISONDIRxREMOTE} 
    Pfad des Verzeichnisses auf dem entfernten Rechner, das mit dem
    unter UNISON\_DIR\_x\_LOCAL angegebenen Verzeichnis abgeglichen werden
    soll.

    Beispiel: \emph{''/data/backup/files''}


\config{UNISON\_DIR\_x\_FORCE}{UNISON\_DIR\_x\_FORCE}{UNISONDIRxFORCE} 
    Wird hier ''local'' oder ''remote'' angegeben, wird Unison dazu veranlasst 
    alle "Anderungen, egal ob diese zu Konflikten f"uhren oder
    nicht, zum Vorteil des entsprechenden Wurzelverzeichnisses aufzu-
    l"osen.
    Diese Option verwandelt Unison von einem Synchronisierer in ein
    Spiegelungsprogramm (und ist daher mit Vorsicht zu genie"sen).

    G"ultige Werte: \emph{''none'', ''local'', ''remote''}
    

\config{UNISON\_DIR\_x\_TIMES}{UNISON\_DIR\_x\_TIMES}{UNISONDIRxTIMES} 
    Wenn diese Einstellung auf ''yes'' gesetzt wird, dann werden die
    Zeiten der letzten "Anderung von Dateien (jedoch nicht von Verzeichnissen) 
    an die Gegenstelle "ubertragen.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_GROUP}{UNISON\_DIR\_x\_GROUP}{UNISONDIRxGROUP} 
    Wenn diese Einstellung auf ''yes'' gesetzt wird, dann werden die
    Gruppenattribute von Dateien an die Gegenstelle "ubertragen.
    Ob dabei die Gruppennamen oder die Gruppen-IDs "ubertragen werden
    ist von der Option UNISON\_DIR\_x\_NUMIDS abh"angig.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_OWNER}{UNISON\_DIR\_x\_OWNER}{UNISONDIRxOWNER} 
    Wenn diese Einstellung auf ''yes'' gesetzt wird, dann werden die
    Besitzerattribute von Dateien an die Gegenstelle "ubertragen.
    Ob dabei die Besitzernamen oder die User-IDs "ubertragen werden
    ist von der Option UNISON\_DIR\_x\_NUMIDS abh"angig.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_NUMIDS}{UNISON\_DIR\_x\_NUMIDS}{UNISONDIRxNUMIDS} 
    Wenn diese Einstellung auf ''yes'' gesetzt wird, dann werden
    Gruppen und Anwender numerisch und nicht textuell anhand ihrer
    Namen synchronisiert.

    Die spezielle Benutzer-ID 0, wie auch die Gruppen-ID 0 werden
    niemals textuell interpretiert. Dies gilt auch dann, wenn diese
    Einstellung nicht gesetzt ist.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_PATH\_N}{UNISON\_DIR\_x\_PATH\_N}{UNISONDIRxPATHN}
    Soll sich die Synchronisation innerhalb der oben angegebenen Wurzelverzeichnisse
    auf eine Reihe von Unterverzeichnisse beschr"anken (und die "ubrigen ignorieren),
    dann kann hier eine Liste dieser Unterverzeichnisse angegeben werden.
    Die Variable UNISON\_DIR\_x\_PATH\_N erh"alt die Anzahl der Unterverzeichnisse
    die angegeben werden sollen.

    Beispiel: \emph{''2''}


\config{UNISON\_DIR\_x\_PATH\_x}{UNISON\_DIR\_x\_PATH\_x}{UNISONDIRxPATHx}
    Soll sich die Synchronisation innerhalb der oben angegebenen Wurzelverzeichnisse
    auf eine Reihe von Unterverzeichnisse beschr"anken (und die "ubrigen ignorieren),
    dann kann hier eine Liste dieser Unterverzeichnisse angegeben werden.
    Die Variable UNISON\_DIR\_x\_PATH\_x erh"alt den Namen eines jeweiligen 
    Unterverzeichnisses.

    \begin{description}
    \item Beispiele: \\
     \emph{''Entwicklung''} \\
     \emph{''Vertrieb''} \\
     \emph{''Verwaltung''}
    \end{description}


\config{UNISON\_DIR\_x\_EXC\_FILE\_N}{UNISON\_DIR\_x\_EXC\_FILE\_N}{UNISONDIRxEXCFILEN} 
    Anzahl der Eintr"age in der Liste von Dateien, die von der Synchronisation 
    ausgenommen sein sollen (EXCLUDE).

    Beispiel: \emph{''2''}


\config{UNISON\_DIR\_x\_EXC\_FILE\_x}{UNISON\_DIR\_x\_EXC\_FILE\_x}{UNISONDIRxEXCFILEx} 
    Angabe von Dateien, die von der Synchronisation ausgenommen werden
    sollen. Dabei k"onnen die Platzhalter ''?'' f"ur ein einzelnes Zeichen
    und ''*'' f"ur mehrere Zeichen verwendet werden. Zudem ist die Angabe
    einer Zeichenmenge [abcd] und die Angabe von Zeichenmustern {a,bb,
    ccc} m"oglich.

    \begin{description}  
    \item Beispiele: \\
     \emph{''*~''} \\
     \emph{''*.\{tmp,old,bak\}''} \\
     \emph{''[0123456789]*''} 
    \end{description}  


\config{UNISON\_DIR\_x\_EXC\_PATH\_N}{UNISON\_DIR\_x\_EXC\_PATH\_N}{UNISONDIRxEXCPATHN} 
    Anzahl der Eintr"age in der Liste von Pfaden, die von der Synchronisation 
    ausgenommen sein sollen (EXCLUDE).

    Beispiel: \emph{''2''}


\config{UNISON\_DIR\_x\_EXC\_PATH\_x}{UNISON\_DIR\_x\_EXC\_PATH\_x}{UNISONDIRxEXCPATHx} 
    Angabe von Pfaden, die von der Synchronisation ausgenommen werden
    sollen. Dabei k"onnen die Platzhalter ''?'' f"ur ein einzelnes Zeichen
    und ''*'' f"ur mehrere Zeichen verwendet werden. Zudem ist die Angabe
    einer Zeichenmenge [abcd] und die Angabe von Zeichenmustern {a,bb,
    ccc} m"oglich.

    \begin{description}  
    \item Beispiele: \\
     \emph{''*/.ssh''} \\
     \emph{''*/{CVS,svn}''} \\
    \end{description}  


\config{UNISON\_DIR\_x\_INC\_FILE\_N}{UNISON\_DIR\_x\_INC\_FILE\_N}{UNISONDIRxINCFILEN} 
    Anzahl der Eintr"age in der Liste von Dateien, die wieder in die
    Synchronisation einbezogen werden sollen, nachdem EXC\_FILE\_?
    angewendet wurde (INCLUDE).

    Beispiel: \emph{''2''}


\config{UNISON\_DIR\_x\_INC\_FILE\_x}{UNISON\_DIR\_x\_INC\_FILE\_x}{UNISONDIRxINCFILEx} 
    Angabe von Dateien, die wieder in die Synchronisation einbezogen
    werden sollen. Dabei k"onnen die Platzhalter ''?'' f"ur ein einzelnes
    Zeichen und ''*'' f"ur mehrere Zeichen verwendet werden. Zudem ist die
    Angabe einer Zeichenmenge [abcd] und die Angabe von Zeichenmustern
    {a,bb,ccc} m"oglich.

    \begin{description}  
    \item Beispiele: \\
     \emph{''*~''} \\
     \emph{''*.\{tmp,old,bak\}''} \\
     \emph{''[0123456789]*''} 
    \end{description}  


\config{UNISON\_DIR\_x\_AUTO}{UNISON\_DIR\_x\_AUTO}{UNISONDIRxAUTO} 
    Gibt an, ob die Synchronisation automatisch "uber den CRON-Dienst
    gestartet werden soll.

    G"ultige Werte: \emph{''yes'', ''no''}


\config{UNISON\_DIR\_x\_SCHEDULE}{UNISON\_DIR\_x\_SCHEDULE}{UNISONDIRxSCHEDULE} 
    Falls UNISON\_DIR\_x\_AUTO den Wert ''yes'' besitzt, kann hier der
    Zeitpunkt festgelegt werden, wann der geplante Vorgang ausgef"uhrt werden
    soll. Das Format ist dabei: \emph{Minute Stunde Tag Monat Wochentag}. 
    Das Zeichen ''*'' ist ein Platzhalter, der einen Wert als immer
    zutreffend markiert.

    Beispiel: \emph{''5  1  *  *  *''} = t"aglich um 1:05 Uhr


\config{UNISON\_DIR\_x\_PRERUN}{UNISON\_DIR\_x\_PRERUN}{UNISONDIRxPRERUN}
    Hier kann ein Befehl (z.B. ein Shell-Skript) hinterlegt werden, das
    vor der Synchronisation ausgef"uhrt werden soll. Dies kann verwendet 
    werden, um ein Sicherungsmedium zu mounten, um tempor"are
    Dateien zu l"oschen, um "uber ssh Befehle auf dem entfernten Rechner
    abzusetzen u.v.m.

    Beispiel: \emph{''mount -t vfat /dev/sda /mnt''}


\config{UNISON\_DIR\_x\_POSTRUN}{UNISON\_DIR\_x\_POSTRUN}{UNISONDIRxPOSTRUN}
    Hier kann ein Befehl (z.B. ein Shell-Skript) hinterlegt werden, das
    nach der Synchronisation ausgef"uhrt werden. Dies kann verwendet werden, 
    um ein Sicherungsmedium zu mounten, um tempor"are
    Dateien zu l"oschen, um "uber ssh Befehle auf dem entfernten Rechner
    abzusetzen u.v.m.

    Beispiel: \emph{''umount /dev/sda''}

\end{description}


\section{Das Paketmen"u}

\subsection{Unison Administration}

\begin{itemize}
\item View documentation\\
        Dokumentation zum Paket Unison auf eisfair anzeigen.
\item Edit configuration\\
        Bearbeiten der Unison-Konfiguration.
\item Start unison daemon\\
        Starten des Unison-Socket-Daemons.
\item Stop unison daemon\\
        Beenden des Unison-Socket-Daemons.
\item Unison synchronisation tools\\
        Untermen"u: Tools zur manuellen Synchronisation.
\item Advanced configuration file handling\\
        Versionsverwaltung der Unison-Konfiguration.
\end{itemize}


\subsection{Unison Synchronisation Tools}
\begin{itemize}
\item Start normal synchronisation\\
      Normale Synchronisation, lediglich
      im Falle von Konflikten ist eine Benutzerinteraktion n"otig, ansonsten
      l"auft der Vorgang automatisch ab.
\item Start interactive synchronisation\\
      Vollst"andig interaktive Synchronisation. 
      Jeder Unterschied wird angezeigt und der Anwernder w"ahlt
      eine m"ogliche Aktion.
\item Synchronize all directories now\\
      Synchronisation aller konfigurierter
      Verzeichnisse. Der Vorgang l"auft automatisch ab, Konflikte werden
      lediglich angezeigt.
\end{itemize}


\section{Zugang "uber SSH}
Damit Unison "uber SSH auf einen entfernetn Rechner zugreifen kann, muss
auf diesem ein SSH-Dienst (sshd) laufen. Man kann die Verbindung testen,
indem man auf der Kommandozeile den Befehl eingibt:

\emph{eis \# ssh <sshuser>@<remote.machine>}

Es wird zun"achst das Kennwort f"ur ''sshuser'' erfragt und anschlie"send eine
Eingabe-Shell ge"offnet. Unison verwendet diesen Mechanismus, um auf dem
entfernten Rechner den Unison-Server zu starten und mit diesem die
Synchronisation durchzuf"uhren.

Soll der Abgleich automatisch "uber den Cron-Daemon ausgef"uhrt werden, ist
jedoch die Eingabe eines Kennworts sehr hinderlich. Zu diesem Zweck unterst"utzt 
SSH die Anmeldung "uber asymmetrische Schl"ussel. Dazu geht man wie
folgt vor:

Zun"achst sollte man als 'root' an der lokalen Maschine angemeldet sein,
da Unison unter dem 'root'-User ausgef"uhrt wird. Nun wird folgender Befehl
auf der Kommandozeile eingegeben:

\emph{ssh-keygen -t dsa}

Dieser Befehl erzeugt das Schl"usselpaar ''~/.ssh/id\_dsa'' (der private
Schl"ussel) und ''~/.ssh/id\_dsa.pub'' (der "offentliche Schl"ussel). 

Der Schl"usselgenerator kann optional den Schl"ussel mit einem Kennwort
\hbox{(Passphrase)} sichern - worauf hier im Sinne der Einfachheit jedoch verzichtet
wird. Falls doch ein solches Kennwort vergeben werden soll, muss sp"ater daf"ur gesorgt
werden, dass dieses bereits mit Hilfe von ''ssh-agent'' zugriffsbereit
im Speicher liegt, bevor Unison "uber den Taskplaner ausgef"uhrt wird.
Anderenfalls hat man nur eine Kennworteingabe gegen die andere vertauscht
und dabei (abgesehen von der verschl"usselten "Ubertragung) nichts gewonnen.
F"ur die Einrichtung von ''ssh-agent'' sein hier jedoch auf das Internet
verwiesen.

Den in der Datei ''id\_dsa.pub'' abgelegten Schl"ussel kopiert man nun auf
dem entfernten Rechner in die Datei ''~/.ssh/authorized\_keys''. Dabei
ist darauf zu achten, dass diese Datei mehrere Schl"ussel enthalten kann
und darum der Text aus ''id\_dsa.pub'' an die Datei anzuh"angen ist (anstatt
diese zu "uberschreiben). Nun sollte die Anmeldung "uber SSH (wie ohen) ohne die
Eingabe eines Kennworts m"oglich sein.

