Android

Verwendung von rsync für die lokale und ferne Datenübertragung und -synchronisation

Sicheres Backup, rsync, ssh und LUKS im Team - Richard Albrecht 2016

Sicheres Backup, rsync, ssh und LUKS im Team - Richard Albrecht 2016

Inhaltsverzeichnis:

Anonim

Rsync ist ein schnelles und vielseitiges Befehlszeilenprogramm, das Dateien und Ordner zwischen zwei Standorten über eine Remote-Shell oder von / zu einem Remote-Rsync-Daemon synchronisiert. 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, für inkrementelle Sicherungen, zum Kopieren von Dateien zwischen Systemen und als Ersatz für scp , sftp und cp Befehle für den täglichen Gebrauch verwendet werden.

In diesem Tutorial zeigen wir Ihnen rsync von praktischen Beispielen und detaillierten Erklärungen der häufigsten rsync Optionen, wie Sie rsync .

Rsync installieren

Das Dienstprogramm rsync ist auf den meisten Linux-Distributionen und MacOS vorinstalliert. Sie können überprüfen, ob es auf Ihrem System installiert ist, indem Sie Folgendes eingeben:

rsync --version

rsync version 3.1.2 protocol version 31

Installieren Sie Rsync unter Ubuntu und Debian

sudo apt install rsync

Installieren Sie Rsync unter CentOS und Fedora

sudo yum install rsync

Rsync-Befehlssyntax

Bevor wir uns mit der Verwendung des Befehls rsync befassen, überprüfen wir zunächst die grundlegende Syntax.

Die Ausdrücke des Dienstprogramms rsync die folgende Form:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote 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 jeden Aspekt seines Verhaltens steuern. Die am häufigsten verwendeten Optionen sind:

  • -a , --archive , archive mode, äquivalent zu -rlptgoD . Diese Option weist rsync an, Verzeichnisse rekursiv zu synchronisieren, spezielle Geräte zu übertragen und Geräte zu blockieren, symbolische Links, Änderungszeiten, Gruppen, Eigentümer und Berechtigungen beizubehalten. -z , --compress . Diese Option erzwingt, dass rsync die Daten komprimiert, wenn sie an den Zielcomputer gesendet werden. Verwenden Sie diese Option nur, wenn die Verbindung zum Remotecomputer langsam ist. -P , äquivalent zu --partial --progress . Wenn diese Option verwendet wird, zeigt rsync während der Übertragung einen Fortschrittsbalken an und behält die teilweise übertragenen Dateien bei. Dies ist nützlich, wenn Sie große Dateien über langsame oder instabile Netzwerkverbindungen übertragen. --delete . Bei Verwendung dieser Option löscht rsync nicht benötigte Dateien vom Zielspeicherort. Es ist nützlich für das Spiegeln. -q , --quiet . Verwenden Sie diese Option, wenn Sie keine Fehlermeldungen unterdrücken möchten. -e . Mit dieser Option können Sie eine andere Remote-Shell auswählen. Standardmäßig ist rsync für die Verwendung von ssh konfiguriert.

Grundlegende Verwendung von Rsync

Um eine einzelne Datei von einer zu einer anderen lokalen Position zu kopieren, führen Sie den folgenden Befehl aus:

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

Der Benutzer, der den Befehl ausführt, muss über Leseberechtigungen für den Zielspeicherort und über Schreibberechtigungen für den Zielspeicherort verfügen.

Das Weglassen 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 im Zielteil an:

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

Im folgenden Beispiel erstellen wir eine lokale Sicherung unserer Website-Dateien:

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

Wenn das Zielverzeichnis nicht existiert, wird es von rsync erstellt.

Erwähnenswert ist, dass rsync die Quellverzeichnisse mit einem abschließenden Schrägstrich / . Wenn Sie dem Quellverzeichnis einen abschließenden Schrägstrich hinzufügen, wird nur der Inhalt des Verzeichnisses in das Zielverzeichnis kopiert. Wenn der abschließende Schrägstrich weggelassen wird, kopiert rsync das Quellverzeichnis in das Zielverzeichnis.

Verwendung von Rsync zum Synchronisieren von Daten von / zu einem Remote-Computer

Wenn Sie rsync für die Fernübertragung verwenden, muss es sowohl auf dem Quell- als auch auf dem Zielcomputer installiert sein. Die neuen Versionen von rsync sind so konfiguriert, dass SSH als Standard-Remote-Shell verwendet wird.

Im folgenden Beispiel übertragen wir ein Verzeichnis von einem lokalen auf einen Remote-Computer:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ Wenn Sie kein passwortloses SSH-Login auf dem Remote-Computer eingerichtet haben, werden Sie aufgefordert, das Benutzerpasswort einzugeben.

Wenn Sie Daten von einem Remote-Computer auf einen lokalen Computer übertragen möchten, müssen Sie den Remote-Standort als Quelle verwenden:

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

Wenn SSH auf dem Remote-Host einen anderen Port als den Standard-Port 22 überwacht, können Sie den Port mit der Option -e angeben:

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

Bei der Übertragung großer Datenmengen wird empfohlen, den Befehl rsync in einer Bildschirmsitzung auszuführen oder die Option -P :

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

Dateien und Verzeichnisse ausschließen

Wenn Sie Dateien oder Verzeichnisse ausschließen, müssen Sie ihre relativen Pfade zum Quellspeicherort verwenden.

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

Im folgenden Beispiel schließen wir die node_modules und tmp die sich im src_directory :

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

Die zweite Option besteht darin, das Argument --exclude-from und die Dateien und Verzeichnisse anzugeben, die in einer Datei ausgeschlossen werden sollen.

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

node_modules tmp

Fazit

In diesem Tutorial haben Sie gelernt, wie Sie mit Rsync Dateien und Verzeichnisse kopieren und synchronisieren. Weitere Informationen zu Rsync finden Sie auf der Seite Rsync-Benutzerhandbuch.

Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.

rsync terminal