Rsync-Befehl in Linux mit Beispielen

rsync ist ein schnelles und vielseitiges Befehlszeilendienstprogramm zum Synchronisieren von Dateien und Verzeichnissen zwischen zwei Standorten über eine entfernte Shell oder von/zu einem entfernten Rsync-Dämon. Es bietet eine schnelle inkrementelle Dateiübertragung, indem es nur die Unterschiede zwischen der Quelle und dem Ziel überträgt.

Rsync kann für die Spiegelung von Daten, inkrementelle Backups, das Kopieren von Dateien zwischen Systemen und als Ersatz für die Befehle scp, sftp und cp verwendet werden.

Dieser Artikel erklärt die Verwendung von rsync anhand praktischer Beispiele und detaillierter Erklärungen der gängigsten rsync-Optionen.

Rsync installieren #

Das Dienstprogramm rsync ist auf den meisten Linux-Distributionen und macOS vorinstalliert. Wenn Sie rsync nicht auf Ihrem System installiert haben, können Sie es einfach über den Paketmanager Ihrer Distribution installieren.

Rsync auf Ubuntu und Debian installieren #

sudo apt install rsync

Rsync auf CentOS und Fedora installieren #

sudo yum install rsync

Rsync-Befehlssyntax #

Bevor wir auf die Verwendung des rsync-Befehls eingehen, sollten wir uns zunächst die grundlegende Syntax ansehen.

Die Ausdrücke des Dienstprogramms rsync haben die folgende Form:

Local to Local: rsync ... ... DESTLocal to Remote: rsync ... ... HOST:DESTRemote to Local: rsync ... HOST:SRC... 
  • OPTION – Die rsync-Optionen.
  • SRC – Quellverzeichnis.
  • DEST – Zielverzeichnis.
  • USER – Remote-Benutzername.
  • HOST – Remote-Hostname oder IP-Adresse.

rsync bietet eine Reihe von Optionen, die das Verhalten des Befehls steuern. Die am häufigsten verwendeten Optionen sind:

  • -a, --archive, Archivmodus, entspricht -rlptgoD. Diese Option weist rsync an, Verzeichnisse rekursiv zu synchronisieren, Spezial- und Blockgeräte zu übertragen, symbolische Links, Änderungszeiten, Gruppen, Eigentümer und Berechtigungen zu erhalten.
  • -z, --compress. Diese Option zwingt rsync, die Daten zu komprimieren, wenn sie an den Zielcomputer gesendet werden. Verwenden Sie diese Option nur, wenn die Verbindung zum entfernten Rechner langsam ist.
  • -P, entspricht --partial --progress. Wenn diese Option verwendet wird, zeigt rsync einen Fortschrittsbalken während der Übertragung an und behält die teilweise übertragenen Dateien. Sie ist nützlich, wenn große Dateien über langsame oder instabile Netzwerkverbindungen übertragen werden.
  • --delete. Wenn diese Option verwendet wird, löscht rsync nicht benötigte Dateien am Zielort. Sie ist nützlich für die Spiegelung.
  • -q, --quiet. Verwenden Sie diese Option, wenn Sie Nicht-Fehlermeldungen unterdrücken möchten.
  • -e. Mit dieser Option können Sie eine andere Remote-Shell wählen. Standardmäßig ist rsync für die Verwendung von ssh konfiguriert.

Basic Rsync Usage #

Der einfachste Anwendungsfall von rsync ist das Kopieren einer einzelnen Datei von einem zu einem anderen lokalen Speicherort. Hier ein Beispiel:

rsync -a /opt/filename.zip /tmp/

Der Benutzer, der den Befehl ausführt, muss Leseberechtigung für den Quellspeicherort und Schreibberechtigung für den Zielspeicherort haben.

Das Senden des Dateinamens vom Zielspeicherort kopiert die Datei mit dem aktuellen Namen. Wenn Sie die Datei unter einem anderen Namen speichern möchten, geben Sie den neuen Namen auf der Zielseite an:

rsync -a /opt/filename.zip /tmp/newfilename.zip

Die wahre Stärke von rsync kommt beim Synchronisieren von Verzeichnissen zum Tragen. Das folgende Beispiel zeigt, wie man ein lokales Backup von Website-Dateien erstellt:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Wenn das Zielverzeichnis nicht existiert, erstellt rsync es.

Es ist erwähnenswert, dass rsync Quellverzeichnisse mit einem abschließenden Schrägstrich (/) anders behandelt. Wenn das Quellverzeichnis einen abschließenden Schrägstrich enthält, kopiert der Befehl nur den Inhalt des Verzeichnisses in das Zielverzeichnis. Wenn der abschließende Schrägstrich weggelassen wird, kopiert rsync das Quellverzeichnis innerhalb des Zielverzeichnisses.

Verwenden von rsync zum Synchronisieren von Daten von/zu einem entfernten Rechner #

Wenn Sie rsync zum Übertragen von Daten aus der Ferne verwenden, muss es sowohl auf dem Quell- als auch auf dem Zielrechner installiert sein. Die neuen Versionen von rsync sind so konfiguriert, dass sie SSH als Standard-Remote-Shell verwenden.

Im folgenden Beispiel wird ein Verzeichnis von einem lokalen auf einen entfernten Rechner übertragen:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Wenn Sie keine passwortlose SSH-Anmeldung auf dem entfernten Rechner eingestellt haben, werden Sie aufgefordert, das Benutzerpasswort einzugeben.

Um Daten von einem entfernten zu einem lokalen Rechner zu übertragen, verwenden Sie den entfernten Standort als Quelle:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Wenn SSH auf dem entfernten Host an einem anderen Port als dem Standardport 22 lauscht, geben Sie den Port mit der Option -e an:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Bei der Übertragung großer Datenmengen empfiehlt es sich, den Befehl rsync innerhalb einer Bildschirmsitzung auszuführen oder die Option -P zu verwenden:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Dateien und Verzeichnisse ausschließen #

Es gibt zwei Möglichkeiten, Dateien und Verzeichnisse auszuschließen. Die erste Option besteht darin, das Argument --exclude zu verwenden und die auszuschließenden Dateien und Verzeichnisse in der Befehlszeile anzugeben.

Wenn Sie Dateien oder Verzeichnisse ausschließen, müssen Sie deren relative Pfade zum Quellort verwenden.

Im folgenden Beispiel werden die Verzeichnisse node_modules und tmp ausgeschlossen:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

Die zweite Möglichkeit besteht darin, die Option --exclude-from zu verwenden und die Dateien und Verzeichnisse, die ausgeschlossen werden sollen, in einer Datei anzugeben.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modulestmp

Abschluss #

Wir haben Ihnen gezeigt, wie Sie Rsync zum Kopieren und Synchronisieren von Dateien und Verzeichnissen verwenden können. Auf der Seite Rsync User’s Manual gibt es noch viel mehr über Rsync zu erfahren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.