10 Praktische Beispiele für den Befehl rsync unter Linux

10 Praktische Beispiele für den Befehl rsync unter Linux

Rsync (Fernsynchronisierung) ist der am häufigsten verwendete Befehl zum Kopieren und Synchronisieren von Dateien und Verzeichnis örtlich In Linux/Unix Systeme.

Mit Hilfe der rsync Befehl, Sie können Ihre Daten remote und lokal über Verzeichnisse, Festplatten und Netzwerke hinweg kopieren und synchronisieren, Datensicherungen durchführen und zwischen zwei Linux -Maschinen spiegeln.

RSYNC Lokale und Remotedateisynchronisation

Dieser Artikel erklärt 10 grundlegende und fortgeschrittene Verwendung der rsync Befehl zum Übertragen Ihrer Dateien remote und lokal in Linux-basiert Maschinen. Sie müssen kein sein Wurzel Benutzer, um die auszuführen rsync Befehl.

Einige Vorteile und Merkmale des Befehls von RSYNC

  • Es kopiert und synchronisiert Dateien in oder von einem Remote -System effizient.
  • Unterstützt das Kopieren von Links, Geräten, Eigentümern, Gruppen und Berechtigungen.
  • Es ist schneller als SCP (Sichere Kopie) Weil rsync Verwendet ein Fern-Updat-Protokoll, mit dem nur die Unterschiede zwischen zwei Dateiensätzen übertragen werden können. Beim ersten Mal kopiert es den gesamten Inhalt einer Datei oder eines Verzeichnisses von der Quelle zum Ziel, aber ab dem nächsten Mal kopiert es nur die geänderten Blöcke und Bytes zum Ziel.
  • RSYNC verbraucht weniger Bandbreitenauslastung, da sie die Komprimierung und die Dekompressionsmethode verwendet, während sie Daten an beiden Enden senden und empfangen.
Die grundlegende Syntax des Befehls rsync
# RSYNC -Optionen Quellziel
Einige gemeinsame Optionen, die mit RSYNC -Befehlen verwendet werden
  • -v : ausführlich
  • -R : Kopiert Daten rekursiv (aber bei der Übertragung von Daten keine Zeitstempel und Erlaubnis erhalten.
  • -A : Archivmodus, mit dem das Kopieren von Dateien rekursiv ermöglicht wird und auch symbolische Links, Dateiberechtigungen, Benutzer- und Gruppenbesitzer und Zeitstempel erhalten bleibt.
  • -z : Datendatendaten komprimieren.
  • -H : menschlich-lesbare Ausgangszahlen in einem menschlichen lesbaren Format.

[Möglicherweise mögen Sie auch: So synchronisieren Sie Dateien/Verzeichnisse mit RSYNC mit nicht standardmäßigem SSH-Port]

Installieren Sie RSYNC im Linux -System

Wir können die installieren rsync Paket mit Hilfe des folgenden Befehls in Ihrer Linux -Verteilung.

$ sudo apt-get install RSYNC [auf Debian/Ubuntu & Mint] $ Pacman-S RSYNC [auf Arch Linux] $ Emerge Sys-Apps/RSYNC [auf Gentoo] $ sudo yum Installieren Sie RSYNC [auf Fedora/Centos/Rhel und Rocky Linux/Almalinux] $ sudo zypper install RSYNC [auf OpenSuse] 

1. Kopieren/Synchronisierungsdateien und Verzeichnisse lokal kopieren

Kopieren/synchronisieren Sie eine Datei auf einem lokalen Computer

Der folgende Befehl synchronisiert eine einzelne Datei auf einem lokalen Computer von einem Ort zu einem anderen Ort. Hier in diesem Beispiel einen Dateinamen Backup.Teer muss kopiert oder synchronisiert werden /tmp/backups/ Ordner.

[[E -Mail geschützt]]# RSYNC -ZVH Backup.Teer.GZ/TMP/Backups/erstelltes Verzeichnis/TMP/Backups Backups.Teer.GZ schickte 224.54K Bytes erhielten 70 Bytes 449.21k Bytes/Sek. Gesamtgröße beträgt 224.40k Beschleunigung ist 1.00 

Im obigen Beispiel können Sie feststellen, dass RSYNC, wenn das Ziel nicht bereits existiert, automatisch ein Verzeichnis für das Ziel erstellt.

RSYNC Lokale Dateien
Kopieren/synchronisieren Sie ein Verzeichnis auf dem lokalen Computer

Der folgende Befehl überträgt oder synchronisiert alle Dateien von einem Verzeichnis in ein anderes Verzeichnis in derselben Maschine. Hier in diesem Beispiel, /root/rpmpkgs Enthält einige RPM -Paketdateien und Sie möchten, dass das Verzeichnis innen kopiert wird /tmp/backups/ Ordner.

[[E -Mail geschützt]]# rsync -avzh/root/rpmpkgs/tmp/backups/sendet inkrementelle Dateiliste rpmpkgs/rpmpkgs/httpd-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/MOD_SSL-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/Nagios-4.4.6-4.EL8.x86_64.RPM RPMPKGS/Nagios-Plugins-2.3.3-5.EL8.x86_64.Drehzahl gesendet 3.47 m Bytes erhalten 96 Bytes 2.32 m Bytes/Sekunden Gesamtgröße beträgt 3.74 m beschleunigt ist 1.08 
RSYNC LOCAL DIRECTORY

2. Kopieren/Synchronisierungsdateien und Verzeichnisse zu oder von einem Server synchronisieren

Kopieren Sie ein Verzeichnis vom lokalen Server auf einen Remote -Server

Dieser Befehl synchronisiert ein Verzeichnis von einer lokalen Maschine mit einer Remote -Maschine. Zum Beispiel, In Ihrem lokalen Computer befindet sich ein Ordner “rpmpkgsDas enthält einige Drehzahl Pakete und Sie möchten, dass der Inhalt dieses lokalen Verzeichnisses an einen Remote -Server gesendet wird. Sie können den folgenden Befehl verwenden.

[[E -Mail geschützt]: ~]# rsync -avzh/root/rpmpkgs [E -Mail geschützt]:/root/die Authentizität von Host '192.168.0.141 (192.168.0.141) 'kann nicht festgelegt werden. ED25519 Schlüsselfingerabdruck ist SHA256: BH2TIWQN4S5O6QMZHMTXCBROV5TU5H4T2C42QDEMX1C. Dieser Schlüssel ist in keiner anderen Namen bekannt. Sind Sie sicher, dass Sie sich weiter verbinden möchten (ja/nein/[Fingerabdruck])? Ja Warnung: permanent hinzugefügt '192.168.0.141 '(ed25519) in die Liste der bekannten Hosts. [E-Mail Protected] Kennwort: Senden inkrementaler Dateiliste RPMPKGS/ RPMPKGS/ HTTPD-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/MOD_SSL-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/Nagios-4.4.6-4.EL8.x86_64.RPM RPMPKGS/Nagios-Plugins-2.3.3-5.EL8.x86_64.Drehzahl gesendet 3.74 m Bytes erhalten 96 Bytes 439.88k Bytes/Sek. Gesamtgröße beträgt 3.74 m beschleunigt ist 1.00 
RSYNC -Verzeichnis Remote -System
Kopieren/synchronisieren Sie ein Remote -Verzeichnis in eine lokale Maschine

Dieser Befehl hilft Ihnen dabei, ein Remote -Verzeichnis mit einem lokalen Verzeichnis zu synchronisieren. Hier in diesem Beispiel ein Verzeichnis /root/rpmpkgs Das auf einem Remote -Server wird in Ihrem lokalen Computer in kopiert /tmp/myrpms.

[[E -Mail geschützt]: ~]# RSYNC -avzh [E -Mail geschützt]:/root/rpmpkgs/tmp/myrpm.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/MOD_SSL-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/Nagios-4.4.6-4.EL8.x86_64.RPM RPMPKGS/Nagios-Plugins-2.3.3-5.EL8.x86_64.Drehzahl gesendet 104 Bytes erhalten 3.49m Bytes 997.68k Bytes/Sekunden Gesamtgröße beträgt 3.74 m beschleunigt ist 1.07 
RSYNC Remote -Verzeichnis nach lokal

3. Rsync über SSH

Mit rsync, wir können benutzen Ssh (Sichere Schale) für die Datenübertragung verwendet Ssh Protokoll beim Übertragen unserer Daten Sie können sicherstellen, dass Ihre Daten in einer gesicherten Verbindung mit Verschlüsselung übertragen werden, damit niemand Ihre Daten lesen kann.

[Möglicherweise gefallen Sie auch: Wie Sie den OpenSSH -Server sichern und härten]

Auch wenn wir verwenden rsync Wir müssen die zur Verfügung stellen Benutzer/Wurzel Passwort, um diese bestimmte Aufgabe zu erledigen, damit die Verwendung des Ssh Die Option sendet Ihre Anmeldungen auf verschlüsselte Weise, damit Ihre Passwort wird sicher sein.

Kopieren Sie eine Datei von einem Remote -Server auf einen lokalen Server mit SSH

Ein Protokoll angeben mit rsync Sie müssen das geben “-eOption mit dem Protokollnamen, den Sie verwenden möchten. Hier in diesem Beispiel werden wir das verwenden “ssh" mit dem "-eOption und Datenübertragung durchführen.

[[E -Mail geschützt]: ~]# rsync -avzhe ssh [E -Mail geschützt]:/root/anaconda -ks.Passwort von CFG /TMP [E-Mail Protected]: Empfangen inkrementeller Dateiliste Anaconda-ks empfangen.CFG schickte 43 Bytes erhalten 1.10k Bytes 325.43 Bytes/Sekunden Gesamtgröße beträgt 1.90k Beschleunigung ist 1.67 
RSYNC Copy Remote -Datei auf lokal kopieren
Kopieren Sie eine Datei von einem lokalen Server auf einen Remote -Server mit SSH
[[E -Mail geschützt]: ~]# rsync -avzhe SSH -Sicherung.Teer.GZ [E -Mail -Protected]:/Backups/[E -Mail -Protectected] -Kennwort: Senden inkrementaler Dateiliste Erstelltes Verzeichnis/Backups Sicherungssicherung.Teer.GZ schickte 224.59k Bytes erhielten 66 Bytes 64.19K Bytes/Sekunden Gesamtgröße beträgt 224.40k Beschleunigung ist 1.00 
RSYNC kopieren Sie die lokale Datei in Remote

[Möglicherweise mögen Sie es auch: So verwenden Sie RSYNC, um neue oder geänderte/modifizierte Dateien unter Linux zu synchronisieren]

4. Fortschritte zeigen, während Sie Daten mit RSYNC übertragen

Um den Fortschritt beim Übertragen der Daten von einer Maschine auf eine andere Maschine zu zeigen, können wir die 'verwenden-Fortschritt' Möglichkeit. Es wird die Dateien und die verbleibende Zeit angezeigt, um die Übertragung abzuschließen.

[[E -Mail geschützt]:/]# rsync -avzhe ssh -progress/root/rpmpkgs [E -Mail -Protected]:/root/rpmpkgs [E -Mail -Protected] Kennwort: Senden inkrementaler Dateiliste RPMPKGS/RPMPKGS/HTTPD -2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.Drehzahl 1.47m 100% 31.80MB/s 0:00:00 (xfr#1, to-chk = 3/5) rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.Drehzahl 138.01K 100% 2.69 MB/s 0:00:00 (xfr#2, to-chk = 2/5) rpmpkgs/nagios-4.4.6-4.EL8.x86_64.Drehzahl 2.01m 100% 18.45MB/s 0:00:00 (xfr#3, to-chk = 1/5) rpmpkgs/nagios-plugins-2.3.3-5.EL8.x86_64.Drehzahl 120.48K 100% 1.04MB/s 0:00:00 (xfr#4, to-chk = 0/5) gesendet 3.74 m Bytes erhielten 96 Bytes 1.50 m Bytes/Sek. Gesamtgröße beträgt 3.74 m beschleunigt ist 1.00 
RSYNC -Fortschritt beim Kopieren von Dateien

5. Verwendung von Optionen -include- und -exklude Optionen

Diese beiden Optionen ermöglichen es uns enthalten Und ausschließen Dateien, indem Parameter mit dieser Option angegeben werden.

Hier in diesem Beispiel enthält der Befehl rsync diese Dateien und das Verzeichnis nur, die mit beginnenR'und schließen Sie alle anderen Dateien und alle Verzeichnisse aus.

[[E -Mail geschützt]:/]# rsync -avze SSH - -include 'r*' -exclude '*' [E -Mail geschützt]:/var/lib/rpm//root/rpm [E -Mail -Protected ]'s Passwort: Empfangen inkrementaler Dateiliste Erstelltes Verzeichnis /Stamm- /Drehzahl erstellt ./ Bedarf gesendete 61 Bytes erhielten 273.074 Bytes 60.696.67 Bytes/Sekunden Gesamtgröße beträgt 761.856 Beschleunigung 2 beträgt 2.79 
RSYNC umfassen und ausschließen Dateien

6. Verwendung der Option -delete

Wenn eine Datei oder ein Verzeichnis nicht an der Quelle vorhanden ist, sondern bereits am Ziel vorhanden ist, möchten Sie diese vorhandene Datei/Verzeichnis am Ziel während der Synchronisierung möglicherweise löschen.

Wir können die 'verwenden'-löschen'Option zum Löschen von Dateien, die im Quellverzeichnis nicht vorhanden sind.

Quelle und Ziel sind synchron. Erstellen Sie nun eine neue Datei prüfen.txt am Ziel.

[[E -Mail geschützt]: ~]# cd/root/rpm/[[E -Mail -Schutz]: ~/rpm]# Touch -Test.TXT [[E -Mail geschützt]: ~/rpm]# RSYNC -avz -Delete [E -Mail -Protected]:/var/lib/rpm//root/rpm/[E -Mail -Protected] Kennwort: Empfangen inkrementeller Dateiliste Löschungstest?.txt ./ .Dbenv.sperren .Drehzahl.Basis -Basisnamen Konfliktname Dirnames EnhancEname FileTiggerName Group Installtid -Namen veraltete Verpackungen Pakete Providename SHA1Header Sigmd5 Vorschlagname SupplementName TransfileTiggerName TriggerName __DB.001 __db.002 __db.003 schickte 445 Bytes, die 18.543.954 Bytes 2.472.586 erhielten.53 Bytes/Sekunden Gesamtgröße beträgt 71.151.616 Beschleunigung 3 beträgt 3.84 

Ziel hat die neue Datei aufgerufen prüfen.txt, Bei der Synchronisation mit der Quelle mit der ''-löschen'Option, es wurde die Datei entfernt prüfen.txt.

RSYNC -Option Löschen

7. Stellen Sie die maximale Größe der zu übertragenden Dateien fest

Sie können die angeben Max Dateigröße, die übertragen oder synchronisiert werden soll. Sie können es mit dem tun “-maximale Größe" Möglichkeit. Hier in diesem Beispiel ist die Max -Dateigröße 200k, Dieser Befehl überträgt also nur die Dateien, die gleich oder kleiner als kleiner sind als 200k.

[[E -Mail geschützt]: ~]# rsync -avzhe ssh - -max -size = '200k'/var/lib/rpm/[E -Mail -Protected]:/root/tmprpm [E -Mail -Protected] Kennwort: Senden inkrementaler Dateiliste senden Erstelltes Verzeichnis /root /tmprpm erstellt ./ .Dbenv.sperren .Drehzahl.Lock ConflictName Enhancename FileTiggerName Group Installtid -Name veraltete Namen empfehlenname Anforderung Anforderungsname SHA1Header Sigmd5 Vorschlagname SupplementName TransfileTiggerName TriggerName __DB.002 129 gesendet.52K Bytes erhielten 396 Bytes 28.87k Bytes/Sek. Gesamtgröße beträgt 71.15 m beschleunigt ist 547.66 
RSYNC SET MAX -Dateiübertragungsgröße

8. Löschen Sie nach erfolgreicher Übertragung automatisch Quelldateien

Nehmen wir nun an, Sie haben den Haupt -Webserver und einen Datensicherungsserver, Sie haben eine tägliche Sicherung erstellt und mit Ihrem Backup -Server synchronisiert. Jetzt möchten Sie diese lokale Kopie von Backup in Ihrem Webserver nicht beibehalten.

Warten Sie also, bis die Übertragung abgeschlossen ist, und löschen Sie diese lokale Sicherungsdatei manuell? Natürlich nicht. Diese automatische Löschung kann mit dem 'durchgeführt werden-Entfernen Sie die Source-Files' Möglichkeit.

[[E-Mail geschützt]: ~]# RSYNC-Remove-Source-Files -ZVH-Sicherung.Teer.GZ [E -Mail geschützt]:/tmp/backups/[E -Mail -Protected] Kennwort: Backup.Teer.GZ schickte 795 Bytes erhalten 2.33k Bytes 894.29 Bytes/Sekunden Gesamtgröße beträgt 267.30k beschleunigt ist 85.40 [[E -Mail geschützt]: ~]# ls -l Backup.Teer.gz LS: Kann nicht auf Backup zugreifen.Teer.GZ ': Keine solche Datei oder Verzeichnis 
RSYNC Löschen Sie die Quelldatei nach der Übertragung

9. Machen Sie einen trockenen Lauf mit RSYNC

Wenn Sie ein Neuling mit RSYNC sind und nicht genau wissen, was genau Ihr Befehl tun wird. RSYNC könnte die Dinge in Ihrem Zielordner wirklich durcheinander bringen, und dann kann ein Rückgängigmachen ein langweiliger Job sein.

[Möglicherweise mögen Sie auch: So synchronisieren Sie zwei Apache -Webserver/Websites mit RSYNC]

Die Verwendung dieser Option nimmt keine Änderungen an den Dateien vor und zeigt die Ausgabe des Befehls an. Wenn die Ausgabe genau das gleiche anzeigt, das Sie tun möchten, können Sie das entfernen-ProbelaufOption aus Ihrem Befehl und laufen Sie am Terminal aus.

[[E -Mail geschützt]: ~]# rsync --Probelauf --Entfernen Sie Source-Files -ZVH-Sicherungen.Teer.GZ [E -Mail geschützt]:/tmp/backups/[E -Mail -Protected] Kennwort: Backup.Teer.GZ schickte 50 Bytes 19 Bytes 19 erhielten 19.71 Bytes/Sekunden Gesamtgröße beträgt 267.30k beschleunigt ist 3.873.97 (PROBELAUF) 
Rsync trockener Lauf

10. RSYNC setzen Bandbreitenlimit und Übertragungsdatei fest

Sie können die Bandbreitengrenze festlegen, während Sie mit Hilfe von 'Daten von einer Maschine auf eine andere Maschine übertragen werden.'-bwlimit' Möglichkeit. Diese Option hilft uns zu begrenzen E/O Bandbreite.

[[E -Mail geschützt]]# RSYNC - -BWLIMIT = 100 -avzhe SSH/var/lib/rpm/[E -Mail -Protected]:/root/tmprpm/[E -Mail Protected] Kennwort: Senden inkrementeller Dateiliste gesendet 324 Bytes empfangen 12 empfangen 12 Bytes 61.09 Bytes/Sekunden Gesamtgröße beträgt 38.08 m beschleunigt ist 113347.05

Standardmäßig änderte RSYNC -Synchronisation nur Blöcke und Bytes. Wenn Sie die gesamte Datei explizit synchronisieren möchten, verwenden Sie die '-W'Option damit.

[[E -Mail geschützt]]# RSYNC -ZVHW Backup.Tar/TMP/Backups/Backup.Teer Backup.Tar gesendet 14.71 m Bytes erhalten 31 Bytes 3.27 m Bytes/Sekunden Gesamtgröße beträgt 16.18 m beschleunigt ist 1.10

Das ist alles mit RSYNC, Sie können sehen Mannseiten Weitere Optionen. Bleib mit Tecmint Für aufregendere und interessanere Tutorials in der Zukunft. Lass deine Kommentare Und Vorschläge.