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 teiltrsyncmit um Verzeichnisse rekursiv zu synchronisieren, spezielle und blockierende Geräte zu übertragen, symbolische Links, Änderungszeiten, Gruppen, Eigentum und Berechtigungen beizubehalten.-z,--compress. Diese Option erzwingtrsynckomprimiert 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,rsynczeigt 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,rsynclö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äßigrsyncist 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.