Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / SUSE Linux Enterprise Server-Dokumentation / Verwaltungshandbuch / Häufige Tasks / Kopieren von Dateien mit RSync
Gilt für SUSE Linux Enterprise Server 15 SP3

11 Kopieren von Dateien mit RSync

Viele moderne Benutzer arbeiten heutzutage gleich mit mehreren Computern: Computer daheim und am Arbeitsplatz, Laptop, Smartphone oder Tablet. Damit wird die Synchronisierung von Dateien und Dokumenten über mehrere Geräte wichtiger als je zuvor.

Warnung
Warnung: Risiko des Datenverlusts

Bevor Sie ein Synchronisierungstool starten, machen Sie sich mit dessen Funktionen und Optionen vertraut. Sichern Sie in jedem Fall wichtige Dateien.

11.1 Konzeptübersicht

Sollen große Datenmengen über eine langsame Netzwerkverbindung synchronisiert werden, bietet Rsync eine zuverlässige Methode, mit der ausschließlich die Änderungen in den Dateien übermittelt werden. Dies betrifft nicht nur Textdateien, sondern auch binäre Dateien. Um die Unterschiede zwischen Dateien zu erkennen, teilt rsync die Dateien in Blöcke auf und berechnet Prüfsummen zu diesen Blöcken.

Zum Erkennen der Änderungen ist eine gewisse Rechenleistung erforderlich. Die Computer auf beiden Seiten müssen daher ausreichende Ressourcen aufweisen (auch ausreichend RAM).

Rsync ist insbesondere dann von Nutzen, wenn große Datenmengen mit kleinen Änderungen in regelmäßigen Abständen übermittelt werden sollen. Dies ist häufig bei Sicherungskopien der Fall. Rsync eignet sich auch zum Spiegeln von Staging-Servern, mit denen komplette Verzeichnisbaumstrukturen von Webservern auf einem Webserver in einer DMZ gespeichert werden.

Trotz seines Namens ist Rsync kein Synchronisierungswerkzeug. Rsync ist ein Werkzeug, das Daten jeweils nur in eine einzige Richtung kopiert, nicht in beide Richtungen. Etwas anderes ist damit nicht möglich. Wenn Sie ein bidirektionales Werkzeug benötigen, mit dem Quelle und Ziel synchronisiert werden, verwenden Sie Csync.

11.2 Einfache Syntax

Für das Befehlszeilenwerkzeug Rsync gilt die folgende grundlegende Syntax:

rsync [OPTION] SOURCE [SOURCE]... DEST

Sie können Rsync auf jedem lokalen Computer oder Remote-Computer verwenden, sofern Sie die erforderlichen Zugriffs- und Schreibrechte besitzen. Es können mehrere SOURCE-Einträge vorliegen. Die Platzhalter SOURCE und DEST können durch Pfade und/oder durch URLs ersetzt werden.

Die folgenden Rsync-Optionen werden am häufigsten verwendet:

-v

Gibt einen ausführlicheren Text zurück

-a

Archivmodus; kopiert Dateien rekursiv und behält die Zeitstempel, das Benutzer-/Gruppeneigentum, die Dateiberechtigungen und die symbolischen Links bei

-z

Komprimiert die übermittelten Daten

Anmerkung
Anmerkung: Anzahl der nachgestellten Schrägstriche

Beim Arbeiten mit Rsync sind die nachgestellten Schrägstriche besonders zu beachten. Ein nachgestellter Schrägstrich nach dem Verzeichnis bezeichnet den Inhalt des Verzeichnisses. Die Angabe ohne nachgestellten Schrägstrich bezeichnet das Verzeichnis selbst.

11.3 Lokales Kopieren von Dateien und Verzeichnissen

In der nachfolgenden Beschreibung wird vorausgesetzt, dass der aktuelle Benutzer Schreibrechte für das Verzeichnis /var/backup besitzt. Mit dem folgenden Befehl kopieren Sie eine einzelne Datei aus einem Verzeichnis auf dem Computer in einen anderen Pfad:

tux > rsync -avz backup.tar.xz /var/backup/

Die Datei backup.tar.xz wird in das Verzeichnis /var/backup/ kopiert; der absolute Pfad lautet /var/backup/backup.tar.xz.

Denken Sie daran, den nachgestellten Schrägstrich nach dem Verzeichnis /var/backup/ anzugeben! Wenn Sie den Schrägstrich nicht einfügen, wird die Datei backup.tar.xz in /var/backup kopiert (also in eine Datei), nicht in das Verzeichnis /var/backup/!

Verzeichnisse werden auf ähnliche Weise kopiert wie einzelne Dateien. Im folgenden Beispiel wird das Verzeichnis tux/ mit dessen Inhalt in das Verzeichnis /var/backup/ kopiert:

tux > rsync -avz tux /var/backup/

Die Kopie befindet sich im absoluten Pfad /var/backup/tux/.

11.4 Remote-Kopieren von Dateien und Verzeichnissen

Das Rsync-Werkzeug muss auf beiden Computern vorhanden sein. Zum Kopieren von Dateien aus Remote-Verzeichnissen oder in diese benötigen Sie eine IP-Adresse oder einen Domänennamen. Ein Benutzername ist optional, wenn die aktuellen Benutzernamen auf dem lokalen Computer und dem Remote-Computer identisch sind.

Mit dem folgenden Befehl kopieren Sie die Datei file.tar.xz vom lokalen Host auf den Remote-Host 192.168.1.1 mit identischen Benutzern (lokal und remote):

tux > rsync -avz file.tar.xz  tux@192.168.1.1:

Alternativ sind auch die folgenden Befehle möglich und äquivalent:

tux > rsync -avz file.tar.xz 192.168.1.1:~
tux > rsync -avz file.tar.xz 192.168.1.1:/home/tux

In allen Fällen mit Standardkonfiguration werden Sie aufgefordert, den Passwortsatz des Remote-Benutzers einzugeben. Mit diesem Befehl wird file.tar.xz in das Benutzerverzeichnis des Benutzers tux kopiert (in der Regel /home/tux).

Verzeichnisse werden im Remote-Verfahren auf ähnliche Weise kopiert wie lokal. Im folgenden Beispiel wird das Verzeichnis tux/ mit dessen Inhalt in das Remote-Verzeichnis /var/backup/ auf dem Host 192.168.1.1 kopiert:

tux > rsync -avz tux 192.168.1.1:/var/backup/

Unter der Voraussetzung, dass Sie Schreibrechte auf dem Host 192.168.1.1 besitzen, befindet sich die Kopie im absoluten Pfad /var/backup/tux.

11.5 Konfigurieren und Verwenden eines Rsync-Servers

Rsync kann als Daemon (rsyncd) ausgeführt werden, der den Standardport 873 auf eingehende Verbindungen überwacht. Dieser Daemon kann Kopierziele empfangen.

Mit den nachfolgenden Anweisungen erstellen Sie einen Rsync-Server auf jupiter mit einem backup-Ziel. In diesem Ziel können Sie Ihre Sicherungskopien speichern. So erstellen Sie einen Rsync-Server:

Vorgehen 11.1: Einrichten eines Rsync-Servers
  1. Erstellen Sie auf jupiter ein Verzeichnis, in dem alle Sicherungskopien gespeichert werden sollen. In diesem Beispiel wird das Verzeichnis /var/backup verwendet:

    root # mkdir /var/backup
  2. Legen Sie das Eigentum fest. In diesem Fall ist der Benutzer tux in der Gruppe users der Eigentümer des Verzeichnisses:

    root # chown tux.users /var/backup
  3. Konfigurieren Sie den rsyncd-Daemon.

    Die Konfigurationsdatei wird in eine Hauptdatei und einige Module aufgeteilt, in denen sich das Sicherungsziel befindet. So können zusätzliche Module später einfacher eingefügt werden. Die globalen Werte können in den Dateien /etc/rsyncd.d/*.inc gespeichert werden, die Module dagegen in den Dateien /etc/rsyncd.d/*.conf:

    1. Erstellen Sie das Verzeichnis /etc/rsyncd.d/:

      root # mkdir /etc/rsyncd.d/
    2. Tragen Sie die folgenden Zeilen in die Hauptkonfigurationsdatei /etc/rsyncd.conf ein:

      # rsyncd.conf main configuration file
      log file = /var/log/rsync.log
      pid file = /var/lock/rsync.lock
      
      &merge /etc/rsyncd.d 1
      &include /etc/rsyncd.d 2

      1

      Führt die globalen Werte aus den Dateien /etc/rsyncd.d/*.inc in der Hauptkonfigurationsdatei zusammen.

      2

      Lädt die Module (oder Ziele) aus den Dateien/etc/rsyncd.d/*.conf. Diese Dateien dürfen keine Verweise auf die globalen Werte enthalten.

    3. Legen Sie das Modul (das Sicherungsziel) mit den folgenden Zeilen in der Datei /etc/rsyncd.d/backup.conf an:

      # backup.conf: backup module
      [backup] 1
         uid = tux 2
         gid = users 2
         path = /var/backup 3
         auth users = tux  4
         secrets file = /etc/rsyncd.secrets 5
         comment = Our backup target

      1

      Das backup-Ziel. Geben Sie einen beliebigen Namen ein. Benennen Sie das Ziel nach Möglichkeit entsprechend seinem Zweck und verwenden Sie denselben Namen in der *.conf-Datei.

      2

      Gibt den Benutzer- oder Gruppennamen an, der für die Dateiübertragung herangezogen werden soll.

      3

      Definiert den Pfad, in dem die Sicherungskopien gespeichert werden sollen (aus Schritt 1).

      4

      Gibt eine durch Komma getrennte Liste der zulässigen Benutzer an. In der einfachsten Form enthält diese Liste die Namen der Benutzer, die berechtigt sind, eine Verbindung zu diesem Modul herzustellen. In diesem Fall ist lediglich der Benutzer tux zulässig.

      5

      Gibt den Pfad einer Datei an, die Zeilen mit Benutzernamen und einfachen Passwörtern enthält.

    4. Erstellen Sie die Datei /etc/rsyncd.secrets mit dem folgenden Inhalt und ersetzen Sie PASSPHRASE:

      # user:passwd
      tux:PASSPHRASE
    5. Die Datei darf nur von root gelesen werden können:

      root # chmod 0600 /etc/rsyncd.secrets
  4. Starten und aktivieren Sie den rsyncd-Daemon:

    root # systemctl enable rsyncd
    root # systemctl start rsyncd
  5. Testen Sie den Zugriff auf den Rsync-Server:

    tux > rsync jupiter::

    Beispiel für eine Antwort:

    backup          Our backup target

    Ansonsten prüfen Sie die Konfigurationsdatei-, Firewall- und Netzwerkeinstellungen.

Mit den obigen Schritten wird ein Rsync-Server erstellt, auf dem Sie nun Sicherungskopien speichern können. Im obigen Beispiel wird auch eine Protokolldatei über alle Verbindungen angelegt. Diese Datei wird unter /var/log/rsyncd.log abgelegt. Diese Funktion ist besonders beim Debuggen der Datenübertragungen hilfreich.

Mit dem folgenden Befehl listen Sie den Inhalt des Sicherungsziels auf:

tux > rsync -avz jupiter::backup

Dieser Befehl listet alle Dateien auf, die auf dem Server im Verzeichnis /var/backup liegen. Diese Anfrage wird auch in der Protokolldatei unter /var/log/rsyncd.log aufgezeichnet. Um die Übertragung tatsächlich zu starten, geben Sie ein Quellverzeichnis an. Verwenden Sie . für das aktuelle Verzeichnis. Mit dem folgenden Befehl wird beispielsweise das aktuelle Verzeichnis auf den Rsync-Sicherungsserver kopiert:

tux > rsync -avz . jupiter::backup

Standardmäßig werden beim Ausführen von Rsync keine Dateien und Verzeichnisse gelöscht. Soll die Löschung aktiviert werden, müssen Sie die zusätzliche Option --delete angeben. Um sicherzustellen, dass keine neueren Dateien überschrieben werden, kann stattdessen die Option --update angegeben werden. Dadurch entstehende Konflikte müssen manuell aufgelöst werden.

11.6 Weitere Informationen

Csync

Bidirektionales Dateisynchronisierungswerkzeug, siehe https://csync.org/.

RSnapshot

Erstellt inkrementelle Sicherungen, siehe https://rsnapshot.org.

Unison

Bidirektionales Dateisynchronisierungswerkzeug – ähnlich wie CSync, jedoch mit grafischer Benutzeroberfläche, siehe https://www.seas.upenn.edu/~bcpierce/unison/.

Rear

Ein Framework für Disaster Recovery. Weitere Informationen hierzu finden Sie im Verwaltungshandbuch der SUSE Linux Enterprise High Availability Extension in Kapitel Disaster Recovery mit Rear (Relax-and-Recover).