GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Rsync-Befehl in Linux mit Beispielen

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 teilt rsync 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 erzwingt rsync 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äßig rsync 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.txt
node_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.


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux Tee-Befehl mit Beispielen

  3. Linux-Kopfbefehl mit Beispielen

  4. JQ-Befehl in Linux mit Beispielen

  5. Linux-rsync-Befehl mit praktischen Beispielen

15 Linux-PS-Befehl mit Beispielen

Linux-CD-Befehl mit Beispielen

Linux-Uhrbefehl mit Beispielen

Wartebefehl in Linux mit Beispielen

Linux-Exportbefehl mit Beispielen

Linux-IP-Befehl mit Beispielen