%
% rsync.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel rsync %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{rsync -- Schneller, inkrementeller Datentransfer und Synchronisation}
\index{rsync}


\section{Allgemeines}

Mit dem rsync-Paket ist es m"oglich, inkrementelle Datei Transfers und
Synchronisationen durchzuf"uhren. Es enth"alt den rsync-Daemon und das
Kommandozeilentool 'rsync', welches auch in Scripten und Cron-Jobs verwendet
werden kann.


\section{Installation}

Das rsync-Paket wird normal "uber das Setup-Men"u installiert. Wird eine "altere
Paket-Version vorgefunden, so wird deren Konfiguration gesichert und das alte
Paket deinstalliert bevor die neuen Programmdateien installiert werden und die
Konfiguration "ubernommen wird.


\section{Konfiguration}

In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind folgende
Parameter vorhanden; wer sie von Hand editieren will, findet die Datei unter
\texttt{/etc/config.d/rsync}.


\begin{description}


\config{START\_RSYNC}
{START\_RSYNC}
{STARTRSYNC}
{
    Sorgt daf"ur das der rsync-Daemon gestartet wird.

    Auf dem \eisfair{-Server} l"auft dann ein Server-Daemon, auf den "uber
    das rsync-Protokoll zugegriffen werden kann. Es muss dazu pro
    freizugebendem Verzeichnis ein sogenanntes Modul konfiguriert
    werden, siehe auch weiter unten zu \texttt{RSYNC\_MODULE\_N}. Die
    Adressen zum Zugriff werden automatisch generiert und anhand der in
    der eisfair-Config vergebenenen Nummern durchnummeriert, bspw. zum
    Zugriff auf einen Server \emph{server}:

    \url{rsync://server/module_1}

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{START\_RSYNC='no'}

    \emph{Hinweis:} Das normale rsync (ohne Daemon) funktioniert auch, wenn
    hier 'no' gesetzt ist.
}


\config{RSYNC\_LOGGING}
{RSYNC\_LOGGING}
{RSYNCLOGGING}
{
    Hier wird festgelegt ob die Ausgaben des rsync-Daemon geloggt werden
    sollen.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{RSYNC\_LOGGING='yes'}
}


\config{RSYNC\_MODULE\_N}
{RSYNC\_MODULE\_N}
{RSYNCMODULEN}
{
    Anzahl der Verzeichnisse, die via rsync freigegeben werden sollen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{RSYNC\_MODULE\_N='1'}
}


\config{RSYNC\_MODULE\_x\_COMMENT}
{RSYNC\_MODULE\_x\_COMMENT}
{RSYNMODULExCOMMENT}
{
    Hier kann man einen Namen f"ur die Freigabe festlegen. Der Name wird
    neben dem Modulnamen angezeigt, wenn sich Clients eine Liste
    verf"ugbarer Module ausgeben lassen. Der Modulname selbst wird
    automatisch erzeugt. \texttt{RSYNC\_MODULE\_1} hei"st dann
    \emph{module\_1} usw.

    G"ultige Werte: Zeichenkette
}


\config{RSYNC\_MODULE\_x\_ACTIVE}
{RSYNC\_MODULE\_x\_ACTIVE}
{RSYNCMODULExACTIVE}
{
    Soll die Freigabe aktiviert werden? Mit diesem Parameter lassen sich
    Freigaben vor"ubergehend deaktivieren, ohne deren Konfiguration zu
    l"oschen.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_ACTIVE='no'}
}


\config{RSYNC\_MODULE\_x\_HOSTS\_ALLOW}
{RSYNC\_MODULE\_x\_HOSTS\_ALLOW}
{RSYNCMODULExHOSTSALLOW}
{
    Hier kann eine durch Leerzeichen getrennte Liste von Mustern
    angegeben werden. IP-Adresse und Hostname von sich verbindenen
    Clients werden gegen die Liste abgeglichen. Wenn kein Muster
    zutrifft, wird die Verbindung abgewiesen. Wird der Parameter leer
    gelassen, d"urfen sich alle Clients verbinden.

    Es gibt verschiedene M"oglichkeiten Muster anzugeben:

    \begin{itemize}
        \item Eine IPv4-Adresse der Form a.b.c.d oder eine IPv6-Adresse
            der Form a:b:c::d:e:f. In diesem Fall muss die Adresse exakt
            "ubereinstimmen.
        \item Eine Angabe der Form IP-address/mask mit numerischer
            Adressmaske, beispielsweise \emph{192.168.0.0/24}.
        \item Eine Angabe der Form IP-address/mask mit ausgeschriebener
            Adressmaske, beispielsweise
            \emph{192.168.0.0/255.255.255.0}.
        \item Ein Hostname. Eine exakte "Ubereinstimmung ist notwendig.
        \item Ein Hostname mit Wildcards wie sie auch in UNIX-Dateinamen
            verwendet werden k"onnen, bspw. \emph{eis.*}
    \end{itemize}

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_HOSTS\_ALLOW=''}
}


\config{RSYNC\_MODULE\_x\_LIST}
{RSYNC\_MODULE\_x\_LIST}
{RSYNCMODULExLIST}
{
    "Uber diesen Parameter wird festgelegt, ob der rsync-Daemon die
    Freigabe anzeigen soll, wenn Clients eine Liste verf"ugbarer Module
    anfordern. Auf diese Weise k"onnen versteckte Module konfiguriert
    werden.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_LIST='yes'}
}


\config{RSYNC\_MODULE\_x\_PATH}
{RSYNC\_MODULE\_x\_PATH}
{RSYNCMODULExPATH}
{
    Hier wird der freizugebende Pfad eingestellt.

    G"ultige Werte: existierender Pfad

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_PATH='/var/www/pub'}
}


\config{RSYNC\_MODULE\_x\_READONLY}
{RSYNC\_MODULE\_x\_READONLY}
{RSYNCMODULExREADONLY}
{
    Hiermit wird festgelegt ob auf die Freigabe auch geschrieben werden
    darf. In der Standardeinstellung darf nur gelesen werden.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_READONLY='yes'}
}


\config{RSYNC\_MODULE\_x\_AUTH}
{RSYNC\_MODULE\_x\_AUTH}
{RSYNCMODULExAUTH}
{
    "Uber diesen Parameter stellt man ein, ob f"ur diese Freigabe eine
    Authentifizierung mit Nutzername und Passwort erfolgen soll. Setzt
    man 'no' wird kein Passwort abgefragt und alle Clients d"urfen sich
    verbinden (anonymous rsync).

    G"ultige Werte: yes, no
}


\config{RSYNC\_MODULE\_x\_USER\_N}
{RSYNC\_MODULE\_x\_USER\_N}
{RSYNCMODULExUSERN}
{
    Anzahl der Benutzer f"ur diese Freigabe.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_USER\_N='1'}
}


\config{RSYNC\_MODULE\_x\_USER\_y\_NAME}
{RSYNC\_MODULE\_x\_USER\_y\_NAME}
{RSYNCMODULExUSERyNAME}
{
    Hiermit wird der Loginname des Benutzers festgelegt. Der Nutzer muss
    auf dem lokalen System nicht existieren und die Angaben d"urfen Shell
    Wildcards enthalten. Clients

    G"ultige Werte: Zeichenkette

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_USER\_y\_NAME='root'}
}


\config{RSYNC\_MODULE\_x\_USER\_y\_ACTIVE}
{RSYNC\_MODULE\_x\_USER\_y\_ACTIVE}
{RSYNCMODULExUSERyACTIVE}
{
    "Uber diesen Parameter k"onnen die Benutzer vorr"ubergehend deaktiviert
    werden, ohne sie aus der Konfiguration l"oschen zu m"ussen.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_USER\_y\_ACTIVE='no'}
}


\config{RSYNC\_MODULE\_x\_USER\_y\_PASSWD}
{RSYNC\_MODULE\_x\_USER\_y\_PASSWD}
{RSYNCMODULExUSERyPASSWD}
{
    Hier wird das Passwort des zuvor angegebenen Benutzers konfiguriert.
    Erlaubt sind beliebige Zeichen. Zu beachten ist, dass je nach Client
    und Server aber m"oglicherweise nur die ersten 8 Zeichen relevant
    sind und der Rest gegebenenfalls ignoriert wird.

    G"ultige Werte: Zeichenkette

    Standardeinstellung: \texttt{RSYNC\_MODULE\_x\_USER\_y\_PASSWD='12345'}
}


\end{description}
