rsync
ist ein schnelles und vielseitiges Befehlszeilendienstprogramm zum Synchronisieren von Dateien und Verzeichnissen zwischen zwei Standorten über eine Remote-Shell oder von/zu einem Remote-Rsync-Daemon. Es bietet eine schnelle inkrementelle Dateiübertragung, indem nur die Unterschiede zwischen der Quelle und dem Ziel übertragen werden.
Rsync kann zum Spiegeln von Daten, inkrementellen Backups, Kopieren von Dateien zwischen Systemen und als Ersatz für scp
verwendet werden , sftp
, und cp
Befehle.
Dieser Artikel erläutert die Verwendung von rsync
durch praktische Beispiele und detaillierte Erklärungen der gängigsten rsync
Optionen.
Installieren von Rsync #
Der rsync
Das Dienstprogramm ist auf den meisten Linux-Distributionen und macOS vorinstalliert. Wenn Sie rsync
nicht haben auf Ihrem System installiert ist, können Sie es ganz einfach mit dem Paketmanager Ihrer Distribution installieren.
Installieren Sie Rsync unter Ubuntu und Debian #
sudo apt install rsync
Installieren Sie Rsync auf CentOS und Fedora #
sudo yum install rsync
Rsync-Befehlssyntax #
Bevor wir auf die Verwendung von rsync
eingehen Befehl, beginnen wir mit der Überprüfung der grundlegenden Syntax.
Der rsync
Utility-Ausdrücke haben folgende Form:
Local to Local: rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
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 teiltrsync
mit um Verzeichnisse rekursiv zu synchronisieren, spezielle und blockierende Geräte zu übertragen, symbolische Links, Änderungszeiten, Gruppen, Eigentum und Berechtigungen beizubehalten.-z
,--compress
. Diese Option erzwingtrsync
komprimiert die Daten, wenn sie an die Zielmaschine gesendet werden. Verwenden Sie diese Option nur, wenn die Verbindung zum Remote-Rechner langsam ist.-P
, entspricht--partial --progress
. Wenn diese Option verwendet wird,rsync
zeigt während der Übertragung einen Fortschrittsbalken und behält die teilweise übertragenen Dateien. Dies ist nützlich, wenn große Dateien über langsame oder instabile Netzwerkverbindungen übertragen werden.--delete
. Wenn diese Option verwendet wird,rsync
löscht überflüssige Dateien vom Zielspeicherort. Es ist nützlich zum Spiegeln.-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 auswählen. Standardmäßigrsync
ist für die Verwendung von ssh konfiguriert.
Grundlegende Rsync-Nutzung #
Der grundlegendste Anwendungsfall von rsync
ist das Kopieren einer einzelnen Datei von einem zu einem anderen lokalen Speicherort. Hier ist ein Beispiel:
rsync -a /opt/filename.zip /tmp/
Der Benutzer, der den Befehl ausführt, muss über Leseberechtigungen für den Quellspeicherort und Schreibberechtigungen für das Ziel verfügen.
Wenn Sie den Dateinamen am Zielort weglassen, wird die Datei mit dem aktuellen Namen kopiert. Wenn Sie die Datei unter einem anderen Namen speichern möchten, geben Sie den neuen Namen im Zielteil an:
rsync -a /opt/filename.zip /tmp/newfilename.zip
Die wahre Kraft von rsync
kommt beim Synchronisieren von Verzeichnissen. Das folgende Beispiel zeigt, wie Sie eine lokale Sicherung von Website-Dateien erstellen:
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Wenn das Zielverzeichnis nicht existiert, rsync
wird es erstellen.
Erwähnenswert ist, dass rsync
behandelt die Quellverzeichnisse mit einem nachgestellten Schrägstrich (/
). Wenn das Quellverzeichnis einen nachgestellten Schrägstrich hat, kopiert der Befehl nur den Verzeichnisinhalt in das Zielverzeichnis. Wenn der abschließende Schrägstrich weggelassen wird, rsync
kopiert das Quellverzeichnis in das Zielverzeichnis.
Verwendung von rsync
um Daten von/zu einem Remote-Rechner # zu synchronisieren
Bei Verwendung von rsync
Um Daten remote zu übertragen, muss es sowohl auf dem Quell- als auch auf dem Zielcomputer installiert sein. Die neuen Versionen von rsync
sind so konfiguriert, dass sie SSH als Standard-Remote-Shell verwenden.
Im folgenden Beispiel übertragen wir ein Verzeichnis von einem lokalen auf einen entfernten Rechner:
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Wenn Sie keine kennwortlose SSH-Anmeldung auf dem Remote-Computer eingerichtet haben, werden Sie aufgefordert, das Benutzerkennwort einzugeben. Um Daten von einem entfernten auf einen lokalen Computer 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 Remote-Host auf einem anderen Port als dem Standardport 22 lauscht, geben Sie den Port mit -e
an Möglichkeit:
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 rsync
auszuführen Befehl innerhalb einer Screensession oder um den -P
zu verwenden Möglichkeit:
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 ist die Verwendung von --exclude
Argument und geben Sie die Dateien und Verzeichnisse, die Sie ausschließen möchten, in der Befehlszeile an.
Wenn Sie Dateien oder Verzeichnisse ausschließen, müssen Sie ihre relativen Pfade zum Quellspeicherort verwenden.
Im folgenden Beispiel wird gezeigt, wie die node_modules
ausgeschlossen werden und tmp
Verzeichnisse:
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
Die zweite Option ist die Verwendung von --exclude-from
Option und geben Sie die Dateien und Verzeichnisse an, die Sie in einer Datei ausschließen möchten.
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txtnode_modules
tmp
Schlussfolgerung #
Wir haben Ihnen gezeigt, wie Sie mit Rsync Dateien und Verzeichnisse kopieren und synchronisieren. Auf der Handbuchseite des Rsync-Benutzers gibt es noch viel mehr über Rsync zu erfahren.
Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.