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

Linux-rsync-Befehl mit praktischen Beispielen

Rsync ist ein schnelles und außerordentlich vielseitiges Tool zum Kopieren von Dateien. Es kann lokal, zu/von einem anderen Host über jede entfernte Shell oder zu/von einem entfernten rsync-Daemon kopieren. Es bietet eine große Anzahl von Optionen, die jeden Aspekt seines Verhaltens steuern und eine sehr flexible Spezifikation des Satzes von zu kopierenden Dateien ermöglichen. Es ist berühmt für seinen Delta-Transfer-Algorithmus, der die über das Netzwerk gesendete Datenmenge reduziert, indem nur die Unterschiede zwischen den Quelldateien und den vorhandenen Dateien am Ziel gesendet werden. Rsync wird häufig für Sicherungen und Spiegelungen sowie als verbesserter Kopierbefehl für den täglichen Gebrauch verwendet.

Rsync findet Dateien, die übertragen werden müssen, mithilfe eines „Quick-Check“-Algorithmus (standardmäßig), der nach Dateien sucht, die sich in der Größe oder in der letzten Änderungszeit geändert haben. Alle Änderungen an den anderen beibehaltenen Attributen (wie von Optionen angefordert) werden direkt an der Zieldatei vorgenommen, wenn die Schnellprüfung anzeigt, dass die Daten der Datei nicht aktualisiert werden müssen.

Einige der zusätzlichen Funktionen von rsync sind

  • Unterstützung für das Kopieren von Links, Geräten, Eigentümern, Gruppen und Berechtigungen
  • Exclude- und Exclude-from-Optionen ähnlich wie GNU tar
  • ein CVS-Ausschlussmodus zum Ignorieren derselben Dateien, die CVS ignorieren würde
  • kann jede transparente Remote-Shell verwenden, einschließlich ssh oder rsh
  • erfordert keine Superuser-Rechte
  • Pipeline von Dateiübertragungen zur Minimierung der Latenzkosten
  • Unterstützung für anonyme oder authentifizierte rsync-Daemons (ideal für die Spiegelung)

Syntax

Die grundlegende Syntax des rsync-Befehls lautet:

# rsync options source destination

Einige der häufig verwendeten Optionen:

  • –löschen :Dateien löschen, die auf dem Sender (System) nicht existieren.
  • -v :Ausführliche Ausgabe
  • -e „ssh-Optionen“ :ssh als Remote-Shell angeben
  • -a :Archivmodus
  • -r :Rekursion in Verzeichnisse
  • -z :Dateidaten komprimieren

rsync-Befehlsbeispiele unter Linux

Datei und Verzeichnisse auf lokalem System synchronisieren

# rsync -zvr /usr/  /root/sync-data/

Der obige Befehl kopiert oder synchronisiert alle Dateien und Verzeichnisse des Ordners /usr in den Ordner /root/sync-data.

Dateien lokal synchronisieren, wobei die Berechtigungen erhalten bleiben

-a Optionen tun Folgendes:Sie bieten rekursive Funktionen und bewahren Berechtigungen, symbolische Links, Benutzer- und Gruppeninformationen.

# rsync -azv /usr/ /root/sync-data/

Dateien vom lokalen Rechner auf den Remote-Server synchronisieren/kopieren

# rsync -avz /root/sync-data/ [email protected]:/tmp

Der obige Befehl kopiert die Daten des Ordners /root/syc-data auf den Remote-Computer mit den Anmeldeinformationen des Root-Benutzers im Ordner /tmp.

Dateien vom Remote-Server auf den lokalen Rechner synchronisieren/kopieren

# rsync -avz [email protected]:/tmp/src /opt 
[email protected]'s password: 
receiving file list ... done 
src/ 
src/debug/ 
src/kernels/
sent 38 bytes  received 99 bytes  10.96 bytes/sec 
total size is 0  speedup is 0.00

Der obige Befehl kopiert den /tmp/src-Ordner des Remote-Servers in den /opt-Ordner des lokalen Computers.

Fernsynchronisierung über ssh

rsync ermöglicht es uns, Dateien über ssh mit dem Remote-Computer und umgekehrt zu synchronisieren, d. H. Sichere Kommunikation. Verwenden Sie „rsync -e ssh“, um anzugeben, welche Remote-Shell verwendet werden soll. In unserem Fall verwendet rsync ssh.

# rsync -avz -e ssh [email protected]:/var/lib/rpm  /opt 
The authenticity of host '192.168.2.149 (192.168.2.149)' can't be established. 
RSA key fingerprint is 45:fc:99:57:34:ba:6a:bb:e3:6f:00:bb:ca:15:3d:c3. 
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.149' (RSA) to the list of known hosts.
[email protected]'s password: 
receiving file list ... done 
rpm/ 
rpm/.rpm.lock 
rpm/Basenames 
rpm/Conflictname 
............
rpm/Triggername
sent 422 bytes  received 12521670 bytes  115410.99 bytes/sec 
total size is 35467264  speedup is 2.83

Fortschritt bei der Synchronisierung anzeigen

Wir können die Option „–progress“ verwenden, um den Synchronisationsfortschritt anzuzeigen.

# rsync -avz  --progress [email protected]:/usr   /opt 
[email protected]'s password: 
receiving file list ... 
44609 files to consider 
usr/ 
usr/tmp -> ../var/tmp 
usr/bin/ 
usr/bin/.fipscheck.hmac 
65 100%   63.48kB/s    0:00:00 (xfer#1, to-check=44605/44609) 
usr/bin/.ssh.hmac 
65 100%   63.48kB/s    0:00:00 (xfer#2, to-check=44604/44609) 
usr/bin/GET 
14519 100%  248.75kB/s    0:00:00 (xfer#3, to-check=44603/44609) 
usr/bin/HEAD 
14519 100%  232.44kB/s    0:00:00 (xfer#4, to-check=44602/44609)
............

Optionen zum Einschließen und Ausschließen in rsync

Mit rsync können wir das Muster angeben, nach dem wir Dateien oder Verzeichnisse während der Synchronisierung einschließen und ausschließen möchten.

# rsync -avz --include 'P*' --exclude '*' [email protected]:/var/lib/rpm/  /opt 
[email protected]'s password: 
receiving file list ... done 
./ 
Packages 
Providename 
Provideversion 
Pubkeys
sent 129 bytes  received 9395561 bytes  695977.04 bytes/sec 
total size is 28999680  speedup is 3.09

Das obige Beispiel enthält nur die Dateien oder Verzeichnisse, die mit „P“ beginnen, und schließt alle anderen Dateien aus. (mit rsync-Ausschluss ‚*‘ )

Dateien am Ziel löschen, wenn die Dateien an der Quelle nicht vorhanden sind

Mit Hilfe der Option „–delete“ in rsync können wir die am Ziel erstellten Dateien löschen, wenn die gleichen Dateien nicht an der Quelle vorhanden sind.

# rsync -avz --delete [email protected]:/var/lib/rpm/  /opt

BEISPIEL:9 SEHEN SIE DIE ÄNDERUNGEN ZWISCHEN QUELLE UND ZIEL MIT DER OPTION „-I“ AN

Sehen Sie sich die Änderungen zwischen Quelle und Ziel an

Sie können die Änderungen zwischen Quell- und Zieldatei mit der Option „-i“ anzeigen. Zum Beispiel:

# rsync -avzi [email protected]:/var/lib/rpm/ /opt
 [email protected]'s password:
 receiving file list ... done
 >f+++++++ .rpm.lock
 >f+++++++ Basenames
 >f+++++++ Conflictname
 >f+++++++ Dirnames
 >f+++++++ Filedigests
 >f+++++++ Group
 >f+++++++ Installtid
 >f+++++++ Name
 >f+++++++ Obsoletename
 >f+++++++ Requirename
 >f+++++++ Requireversion
 >f+++++++ Sha1header
 >f+++++++ Sigmd5
 >f+++++++ Triggername
sent 328 bytes  received 3126214 bytes  297765.90 bytes/sec
total size is 35467264  speedup is 11.34

Begrenzen Sie die Größe der Übertragungsdatei

Sie können rsync zwingen, keine Dateien zu übertragen, die eine bestimmte Größe überschreiten, indem Sie die Option „–max-size“ verwenden.

# rsync -avz --max-size='200k' [email protected]:/var/lib/rpm/ /opt

Der obige Befehl bewirkt, dass rsync nur die Dateien überträgt, die kleiner oder gleich 200 KB sind. Wir können M für Megabyte und G für Gigabyte angeben.


Linux
  1. wc Linux-Befehl mit Beispielen

  2. 25 Nützliche praktische Beispiele für find-Befehle unter Linux

  3. JQ-Befehl in Linux mit Beispielen

  4. Praktische Beispiele für den rsync-Befehl unter Linux

  5. Praktische Beispiele für den Unzip-Befehl unter Linux

12 praktische Beispiele für In Command unter Linux

Wait-Befehl in Linux mit praktischen Beispielen erklärt

15 Praktische Beispiele für den Rsync-Befehl unter Linux

Tutorial für Linux-Suchbefehle (mit Beispielen)

lsof-Befehl unter Linux mit Beispielen

Linux-Comm-Befehl mit Beispielen