rsync bietet sich immer dann an, wenn große Datenmengen, die sich nicht wesentlich ändern, regelmäßig übertragen werden müssen. Dies ist z. B. bei der Erstellung von Sicherungskopien häufig der Fall. Ein weiteres Einsatzgebiet sind so genannte Staging-Server. Dabei handelt es sich um Server, auf denen komplette Verzeichnisstrukturen von Webservern gespeichert werden, die regelmäßig auf den eigentlichen Webserver in einer „DMZ“ gespiegelt werden.
rsync lässt sich in zwei verschiedenen Modi benutzen. Zum einen kann rsync zum Archivieren oder Kopieren von Daten verwendet werden. Dazu ist auf dem Zielsystem nur eine Remote-Shell, wie z. B. SSH, erforderlich. Jedoch kann rsync auch als Daemon
verwendet werden und Verzeichnisse im Netz zur Verfügung stellen.
Die grundlegende Verwendung von rsync erfordert keine besondere Konfiguration. Mit rsync ist es direkt möglich, komplette Verzeichnisse auf ein anderes System zu spiegeln. Beispielsweise kann mit folgendem Befehl ein Backup des Home-Verzeichnisses von „tux“ auf einem Backupserver „sun“ angelegt werden:
rsync -baz -e ssh /home/tux/ tux@sun:backup
Mit dem folgenden Befehl wird das Verzeichnis zurückgespielt:
rsync -az -e ssh tux@sun:backup /home/tux/
Bis hierher unterscheidet sich die Benutzung kaum von einem normalen Kopierprogramm, wie scp.
Damit rsync seine Funktionen voll ausnutzen kann, sollte das Programm im „rsync“-Modus betrieben werden. Dazu wird auf einem der Systeme der Daemon rsyncd gestartet. Konfigurieren Sie rsync in der Datei /etc/rsyncd.conf
. Wenn beispielsweise das Verzeichnis /srv/ftp
über rsync zugänglich sein soll, verwenden Sie die folgende Konfiguration:
gid = nobody uid = nobody read only = true use chroot = no transfer logging = true log format = %h %o %f %l %b log file = /var/log/rsyncd.log [FTP] path = /srv/ftp comment = An Example
Starten Sie dann rsyncd mit rcrsyncd start
. rsyncd kann auch automatisch beim Bootvorgang gestartet werden. Hierzu muss entweder dieser Dienst in YaST im Runlevel-Editor aktiviert oder manuell der Befehl insserv rsyncd
eingegeben werden. Alternativ kann rsyncd auch von xinetd gestartet werden. Dies empfiehlt sich aber nur bei Servern, auf denen rsyncd nicht allzu oft verwendet wird.
Im obigen Beispiel wird auch eine Protokolldatei über alle Verbindungen angelegt. Diese Datei wird unter /var/log/rsyncd.log
abgelegt.
Dann kann die Übertragung von einem Clientsystem aus getestet werden. Das geschieht mit folgendem Befehl:
rsync -avz sun::FTP
Dieser Befehl listet alle Dateien auf, die auf dem Server im Verzeichnis /srv/ftp
liegen. Diese Anfrage wird auch in der Protokolldatei unter /var/log/rsyncd.log
aufgezeichnet. Um die Übertragung tatsächlich zu starten, geben Sie ein Zielverzeichnis an. Verwenden Sie .
für das aktuelle Verzeichnis. Beispiel:
rsync -avz sun::FTP .
Standardmäßig werden bei der Synchronisierung mit rsync keine Dateien gelöscht. Wenn dies erzwungen werden soll, muss zusätzlich die Option --delete
angegeben werden. Um sicherzustellen, dass keine neueren Dateien überschrieben werden, kann stattdessen die Option --update
angegeben werden. Dadurch entstehende Konflikte müssen manuell aufgelöst werden.
Wichtige Informationen zu rsync finden Sie in den Manualpages man rsync
und man rsyncd.conf
. Eine technische Dokumentation zur Vorgehensweise von rsync finden Sie unter /usr/share/doc/packages/rsync/tech_report.ps
. Aktuelles zu rsync finden Sie auf der Projekt-Website unter http://rsync.samba.org/.