Rsync, kurz für Remote Sync , ist ein Linux-Befehl, der zum Kopieren und Synchronisieren von Dateien zwischen zwei Linux-Systemen verwendet wird. Es funktioniert so, dass alle zusätzlichen Änderungen an einer Datei oder einem Verzeichnis auf einem anderen Linux-System repliziert werden.
Mit dem Linux-Befehl rsync können Sie Backups nahtlos lokal und remote zwischen Linux-Systemen und -Servern kopieren und synchronisieren. In diesem Artikel untersuchen wir verschiedene Befehlsoptionen, die Sie zusammen mit dem Befehl rsync verwenden können.
Grundlegende Syntax für den Linux-rsync-Befehl
Die Syntax für rsync ist unten kurz zusammengefasst.
$ rsync options source destination
Mit dem rsync-Befehl verwendete Optionen
- -z :Dadurch werden Daten komprimiert.
- -v :Dies zeigt den Vorgang im ausführlichen Modus an.
- -r :Die Option kopiert Daten rekursiv (Die Option behält jedoch keine Zeitstempel und Dateiberechtigungen während der Datenübertragung bei).
- -h :Dies gibt Informationen in einem für Menschen lesbaren Format aus.
- -a :Dies ermöglicht nicht nur das rekursive Kopieren von Dateien, sondern bewahrt auch symbolische Links, Zeitstempel, Dateiberechtigungen sowie Benutzer- und Gruppeneigentumsrechte.
Dateien und Verzeichnisse lokal kopieren
Sie können Dateien lokal von einem Speicherort zu einem anderen auf einem Linux-Computer synchronisieren, indem Sie das folgende Beispiel verwenden.
$ rsync -zvh backup.tar /opt/backup_dir
Im obigen Beispiel der Tarball backup.tar
wird in das /opt/backup_dir
kopiert und synchronisiert Verzeichnis.
Beispielausgabe
Um ein Verzeichnis lokal von einem Ort zu einem anderen zu kopieren :
Die Syntax ist ähnlich wie beim Kopieren von Dateien, nur dass wir in diesem Fall den -a
verwenden Flag für rekursives Kopieren.
Im Beispiel unten kopieren und synchronisieren wir die deb_packages
in das Verzeichnis /opt/backup_dir
Verzeichnis.
$ rsync -azvh deb_packages /opt/backup_dir
Beispielausgabe
Dateien oder Verzeichnisse zu und von einem Remote-Server kopieren/synchronisieren
Um ein Verzeichnis auf einen entfernten Server zu kopieren, müssen der Benutzername und die IP-Adresse des Servers neben dem Zielordner angegeben werden.
Im Beispiel unten sind die deb_packages
Verzeichnis wird auf einen entfernten Server mit einer IP 66.152.163.19
kopiert unter Verwendung von Root-Benutzer-Anmeldeinformationen und im Root-Home-Verzeichnis gespeichert.
$ rsync -avz deb_packages [email protected]:
Beispielausgabe
Zum Kopieren und Synchronisieren eines Verzeichnisses von einem Remote-Server auf einen lokalen PC :
Verwenden Sie das folgende Beispiel, um Dateien von einem Remote-System auf ein lokales Linux-System zu kopieren und zu synchronisieren
$ rsync -avzh [email protected]:documents /opt/backup_dir
Im obigen Beispiel das Verzeichnis documents
wird rekursiv vom entfernten System mit einer IP 66.152.163.19
kopiert auf das lokale System in /opt/backup_dir
Verzeichnis.
Rsync-Befehl über SSH
Rsync kann zusammen mit dem SSH-Protokoll verwendet werden, um die Dateien zu sichern oder zu verschlüsseln, die an und von einem Linux-System gesendet werden. Dadurch wird sichergestellt, dass niemand die Daten abhören kann, die Sie über das Netzwerk übertragen.
So kopieren Sie eine Datei von einem lokalen Server auf einen Remote-Server mit rsync über SSH:
In diesem Beispiel verwenden wir das -e
Option mit rsync, um ein Protokoll anzugeben, in diesem Fall SSH.
$ rsync -avhze ssh backup.tar [email protected]:/backup_dir
Beispielausgabe
So kopieren Sie eine Datei mit rsync über SSH von einem Remote-Server auf ein lokales System:
Genau wie im vorherigen Beispiel wird der rsync-Befehl zusammen mit dem -e
verwendet Option.
$ rsync -avzhe ssh [email protected]:/backup_dir /tmp/
Beispielausgabe
Fortschritt während der Datenübertragung mit dem rsync-Befehl anzeigen
Wenn Sie den Fortschritt während der Datenübertragung anzeigen möchten, verwenden Sie --progress
Möglichkeit. Dies zeigt die Datei und die geschätzte Zeit bis zum Abschluss der Datenübertragung an.
Beispielausgabe
Linux-rsync-Befehl mit –include- und –exclude-Optionen
Diese Optionen oben helfen Benutzern beim include
und exclude
Dateien, die sie in den Synchronisierungsprozess ein- oder ausschließen möchten.
Im folgenden Beispiel fügt der Befehl rsync diese Dateien in /var/lib
ein Verzeichnis, das mit „p“ beginnt und alle anderen Dateien und Verzeichnisse ausschließt.
$ rsync -avz --include 'p*' --exclude '*' /var/lib [email protected]:/opt/backup_dir
Beispielausgabe
Maximale Größe der zu übertragenden Dateien festlegen
Mit der Option „–max-size“ können Sie die maximale Dateigröße festlegen, die übertragen und synchronisiert werden soll.
$ rsync -avzh --max-size='50M' deb_packages [email protected]:/opt/backup-dir
Der obige Befehl begrenzt die Übertragung von Dateien in deb_packages
Verzeichnis auf 50 Megabyte. Das bedeutet, dass nur Dateien bis zu einer Größe von 50 MB übertragen und synchronisiert werden.
Beispielausgabe
Quelldateien nach erfolgreicher Übertragung löschen
Wenn Sie eine Sicherungskopie Ihrer Dateien auf einem entfernten Ziel erstellen, aber keine lokale Kopie behalten möchten, verwenden Sie –remove-source-files
Option wie gezeigt.
$ rsync --remove-source-files -zvh backup.tar /tmp/mybackups/
Beispielausgabe
Wir hoffen, dass dieser Artikel für Sie von Nutzen war. Wenn Sie Fragen haben, wenden Sie sich bitte mit Ihrem Feedback an uns.