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

Rsync-Befehl:20 hilfreiche Beispiele in Linux

Einführung

Rsync oder Remote Sync ist ein kostenloses Befehlszeilentool, mit dem Sie Dateien und Verzeichnisse an lokale und entfernte Ziele übertragen können. Rsync wird zum Spiegeln, Durchführen von Sicherungen oder zum Migrieren von Daten auf andere Server verwendet.

Dieses Tool ist schnell und effizient, kopiert nur die Änderungen aus der Quelle und bietet Anpassungsoptionen.

Folgen Sie dieser Anleitung, um zu erfahren, wie Sie rsync mit verwenden 20 Befehlsbeispiele um die meisten Anwendungsfälle in Linux abzudecken.

Voraussetzungen

  • Benutzer mit sudo oderroot Privilegien
  • Zugriff auf ein Terminal/eine Befehlszeile
  • SSH-Zugriff für entfernte rsync-Beispiele

Rsync-Befehlssyntax

Die Syntax für rsync Befehl ändert sich je nach Verwendung des Tools. Wir werden alle Szenarien in den folgenden Beispielen behandeln. Die Rsync-Syntax sieht in ihrer einfachsten Form so aus:

rsync options SOURCE DESTINATION

Für Remote-Datenübertragungen müssen Sie die Adresse eines Hosts angeben, aber dazu später mehr.

Rsync-Optionen

Das rsync-Tool bietet viele Optionen. Sie können rsync eingeben in Ihrem Terminal und erhalten Sie alle Details. Wir werden einige der gebräuchlichsten rsync-Optionen auflisten.

Dazu gehören:

-r Ermöglicht die rekursive Synchronisierung von Daten, behält jedoch keine Eigentumsrechte für Benutzer und Gruppen, Berechtigungen, Zeitstempel oder symbolische Links.
-a Der Archivmodus verhält sich wie der rekursive Modus, behält aber alle Dateiberechtigungen, symbolischen Links, Dateibesitz usw.
-z Wird verwendet, um Daten während der Übertragung zu komprimieren, um Platz zu sparen.
-b Führt während der Datensynchronisierung eine Sicherung durch.
-h Zeigt die Zahlen in der Ausgabe in einem für Menschen lesbaren Format an.
-n Führt einen Trockenlauf durch. Wird zum Testen verwendet, bevor die eigentliche Synchronisierung stattfindet.
-e Weist rsync an, das SSH-Protokoll für Fernübertragungen zu verwenden.
-progress Zeigt den Übertragungsfortschritt während der Synchronisierung an.
-v Ausführliche Ausgabe. Zeigt die Details der Übertragung an.
-q Wird verwendet, um die Ausgabe für den rsync-Befehl und die Optionen zu unterdrücken.

Rsync-Befehlsbeispiele

Rsync ist ein vielseitiges Synchronisierungstool, das Sie an Ihre spezifische Verwendung anpassen können. In diesem Leitfaden verwenden wir das Archiv (-a ) und ausführlich (-v ) Optionen bei Bedarf.

Sehen Sie sich die rsync-Beispiele unten an, um den Großteil der rsync-Nutzung abzudecken.

1. Einzelne Datei lokal kopieren

Um eine Datei in ein anderes Verzeichnis auf einem lokalen Rechner zu kopieren, geben Sie den vollständigen Pfad der Quelldatei gefolgt vom Zielort ein.

Zum Beispiel:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/rsync/

Der Befehl überträgt die sample.txt Datei zum rsync Verzeichnis. Wenn das Zielverzeichnis nicht existiert, fügen Sie am Ende einen Schrägstrich hinzu, und rsync erstellt es, wie in unserem Beispiel.

Wenn Sie eine Datei aus dem aktuellen Arbeitsverzeichnis kopieren möchten, können Sie den Namen der Datei eingeben, nicht den vollständigen Pfad.

2. Mehrere Dateien lokal kopieren

Um mehrere Dateien mit rsync zu kopieren, fügen Sie die vollständigen Pfade der Quelldateien hinzu:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/sample2rs.txt /home/test/Desktop/rsync

Sie sollten diese Methode für eine kleine Anzahl von Dateien verwenden. Wenn die Liste größer ist, können Sie auf --exclude verweisen Option.

3. Ein Verzeichnis und alle Unterverzeichnisse lokal kopieren (Dateien und Verzeichnisse rekursiv kopieren)

Um ein Verzeichnis und seinen Inhalt an einen anderen Ort auf Ihrem Computer zu kopieren, verwenden Sie -a oder -r Möglichkeit. Wir haben das Archiv verwendet Option :

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync

Das obige Beispiel zeigt, wie die Linux kopiert wird in das rsync -Verzeichnis Verzeichnis. Beachten Sie, dass wir den abschließenden Schrägstrich nach Linux nicht verwendet haben . Daher hat das rsync-Tool das Linux erstellt Verzeichnis und dessen Inhalt innerhalb von rsync Verzeichnis.

4. Kopieren Sie eine Datei oder ein Verzeichnis von einem lokalen auf einen Remote-Computer

Um das Verzeichnis /home/test/Desktop/Linux zu kopieren nach /home/test/Desktop/rsync Auf einem Remote-Rechner müssen Sie die IP-Adresse des Ziels angeben.

Fügen Sie die IP-Adresse und das Ziel nach dem Quellverzeichnis hinzu. Denken Sie daran, einen Doppelpunkt (: ) nach der IP-Adresse des Remote-Hosts, ohne Leerzeichen vor dem Ziel.

Der Befehl sieht folgendermaßen aus:

rsync -av /home/test/Desktop/Linux 192.168.56.100:/home/test/Desktop/rsync

Geben Sie das Passwort für den aktuellen Benutzer ein, um fortzufahren. Wenn Sie ein anderes Konto für die Remote-Verbindung verwenden möchten, geben Sie es vor der IP-Adresse an:

rsync -a /home/test/Desktop/Linux [email protected]:/home/test/Desktop/rsync

Um eine einzelne Datei auf einen Remote-Host zu kopieren, geben Sie den vollständigen Pfad der Datei und das Ziel an.

Zum Beispiel:

rsync -av /home/test/Desktop/sample_file.txt 192.168.56.100:/home/test/Desktop/rsync

5. Kopieren Sie mehrere Dateien oder Verzeichnisse vom lokalen auf den Remote-Computer

Listen Sie ähnlich wie beim lokalen Kopieren von Daten mehrere Dateien oder mehrere Verzeichnispfade auf, die Sie auf einen Remote-Server kopieren möchten. Befolgen Sie dieselbe Syntax wie beim Kopieren einer einzelnen Datei oder eines einzelnen Verzeichnisses.

Zum Beispiel:

rsync -av /home/test/Desktop/Linux/ /home/test/Music 192.168.56.100:/home/test/Desktop/rsync

6. Geben Sie das rsync-Protokoll für Remote-Übertragungen an

Das rsync-Tool kann mit -e angewiesen werden Möglichkeit um ein bestimmtes Protokoll für Dateiübertragungen zu verwenden. Um Rsync über SSH für die Remoteübertragung von Dateien zu verwenden, hängen Sie -e ssh an zum rsync Befehl.

Zum Beispiel, um sample.txt zu übertragen von Ihrem Desktop auf den Desktop eines entfernten Rechners:

rsync -e ssh /home/test/Desktop/sample.txt 192.168.56.100:/home/test/Desktop

7. Kopieren einer Datei oder eines Verzeichnisses von einem Remote- auf einen lokalen Computer

Rsync unterstützt die Übertragung von Dateien von einem Remote-Server auf Ihren lokalen Rechner.

Um ein Verzeichnis von einem Server abzurufen, geben Sie seine IP-Adresse vor der Quelle an.

Zum Beispiel:

rsync -av 192.168.56.100:/home/test/Desktop/DirM /home/test/Desktop

Dieser Befehl kopierte das DirM Verzeichnis von 192.168.56.100 bis /home/test/Desktop auf einem lokalen Server.

Um eine bestimmte Datei von einem Remote-Host zu kopieren, geben Sie den vollständigen Pfad der Quelldatei und das Ziel auf Ihrem lokalen Computer ein. Zum Beispiel:

rsync -v 192.168.56.100:/home/test/Desktop/testfile.txt /home/test/Desktop

8. Kopieren Sie mehrere Dateien oder Verzeichnisse vom lokalen auf den Remote-Computer

Um mehrere Dateien oder mehrere Verzeichnisse von einem Remote-Server zu übertragen, listen Sie die Pfade in geschweiften Klammern nach der IP-Adresse des Servers auf. Trennen Sie die Pfade mit einem Komma.

Zum Beispiel:

rsync -av 192.168.56.100:{/home/test/Desktop/DirM,/home/test/Desktop/Dir1} /home/test/rsync

Dasselbe gilt für die Dateien. Listen Sie so viele Dateien wie nötig in den geschweiften Klammern auf.

9. rsync-Fortschritt während der Datenübertragung anzeigen

Wenn Sie eine große Datensicherung durchführen, möchten Sie möglicherweise den Fortschritt der Übertragung anzeigen.

Fügen Sie --progress hinzu -Flag zum rsync Befehl, um die übertragene Datenmenge, die Übertragungsgeschwindigkeit und die verbleibende Zeit anzuzeigen.

Zum Beispiel, um Dir1 zu sichern zu einem entfernten Server zu übertragen und den Fortschritt anzuzeigen, geben Sie ein:

rsync -av --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

10. Löschen Sie eine nicht vorhandene Quelldatei oder ein nicht vorhandenes Verzeichnis vom Ziel

Verwenden Sie --delete Option, um die Quelle und das Ziel synchron zu halten.

Diese Option weist rsync an, jede Datei oder jedes Verzeichnis am Ziel zu löschen, wenn die Quelle es nicht hat.

rsync -av --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

11. Quelldateien nach der Übertragung löschen

In einigen Szenarien möchten Sie die Quelldateien nach der Übertragung möglicherweise löschen. Beispielsweise können Sie ein wöchentliches Backup auf einen neuen Server verschieben. Sobald die Übertragung abgeschlossen ist, benötigen Sie die Quelldateien auf dem alten Server nicht mehr.

Verwenden Sie in diesem Fall --remove-source-files Flag, um die angegebene Quelldatei zu löschen.

Dieser Befehl überträgt beispielsweise die Sicherungsdatei weekly.zip und löscht es dann aus der Quelle:

rsync -v --remove-source-files /home/test/backup/weekly.zip 192.168.56.100:/home/test/Desktop/rsync/

12. Rsync-Trockenlauf

Rsync ist ein leistungsstarkes Synchronisierungstool. Da Sie mit diesem Tool Daten kopieren und löschen können, empfehlen wir Ihnen, zunächst einen Probelauf durchzuführen, um zu testen, ob rsync das tut, was Sie beabsichtigt haben.

Die Probelaufoption ist besonders nützlich, wenn Sie Dateien löschen möchten. Um einen Probelauf durchzuführen, verwenden Sie --dry-run Option und folgen Sie der regulären rsync-Syntax.

Zum Beispiel:

rsync -av --dry-run --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

Die Ausgabe sieht genauso aus wie beim tatsächlichen Synchronisieren von Dateien. Diesmal werden die Daten jedoch nicht synchronisiert. Um zu bestätigen, dass der Test stattgefunden hat und nicht die tatsächliche Übertragung, zeigt das Terminal unten (DRY RUN).

13. Legen Sie die maximale Dateigröße für die Übertragung fest

Um die maximale Dateigröße zu bestimmen, die rsync überträgt, verwenden Sie --max-size=add_size .

Um beispielsweise Dateien zu übertragen, die nicht größer als 500 KB sind, verwenden Sie diesen Befehl:

rsync -av --max-size=500k /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

14. Legen Sie die minimale Dateigröße für die Übertragung fest

Verwenden Sie --min-size=add_size mit rsync, wenn Sie keine Dateien übertragen möchten, die kleiner als die von Ihnen angegebene Größe sind. Diese Option ist zum Beispiel nützlich, wenn Sie kleine Log- oder Thumbnail-Dateien überspringen möchten.

Um eine Datei kleiner als 10 KB zu überspringen, führen Sie diesen Befehl aus:

rsync -av --min-size=10k /home/test/Desktop/ 192.168.56.100:/home/test/Desktop/rsync/

15. rsync-Bandbreitenlimit festlegen

Wenn Sie das Bandbreitenlimit während der Datenübertragung zwischen Computern bestimmen möchten, verwenden Sie --bwlimit=KB/s .

Diese Option ist nützlich, wenn Sie Ihren Netzwerkdurchsatz nicht blockieren möchten.

Geben Sie Folgendes ein, um die maximale Übertragungsgeschwindigkeit auf 50 KB/s festzulegen:

rsync -av --bwlimit=50 --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

Wir haben auch den --progress verwendet Option, um die Verwendung von --bwlimit zu demonstrieren .

16. Bestimmten Dateityp kopieren

Sie können rsync verwenden, um nur einen bestimmten Dateityp zu kopieren. Verwenden Sie dazu das Sternchen (* ) anstelle des Dateinamens und fügen Sie die Erweiterung hinzu.

Um beispielsweise nur .txt-Dateien zu kopieren, geben Sie Folgendes ein:

rsync -v /home/test/Documents/*.txt /home/test/Desktop/rsync/

Dieses rsync Befehl überträgt alle Textdateien aus den Dokumenten in das rsync -Verzeichnis Verzeichnis auf Ihrem Desktop.

17. Verzeichnisstruktur kopieren, aber Dateien überspringen

Mit Rsync können Sie nur die Verzeichnisstruktur übertragen, wenn Sie die Dateien nicht an einem anderen Ort benötigen.

Fügen Sie dazu -f"+ */" -f"- *" hinzu vor dem Quellverzeichnis.

Zum Beispiel, um die Struktur von Linux zu kopieren Verzeichnis zu Dokumente , geben Sie ein:

rsync -av -f"+ */" -f"- *"  /home/test/Desktop/Linux /home/test/Documents

18. Datumsstempel zum Verzeichnisnamen hinzufügen

Sie können einem Verzeichnisnamen ganz einfach ein Datum hinzufügen, wenn Sie Ihre Übertragungen mit einem Datumsstempel versehen möchten.

Hängen Sie $(date +%Y-%m-%d) an zum Namen des Zielverzeichnisses, das Sie erstellen möchten. Diese Option ist nützlich, wenn Sie nachverfolgen möchten, wann Übertragungen stattfanden, ohne die Verzeichniseigenschaften zu öffnen.

Zum Beispiel:

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +%Y-%m-%d)

19. Quelldatei nicht kopieren, wenn dieselbe Zieldatei geändert wird

Wenn Sie zwei Verzeichnisse synchron halten, kopiert rsync keine Datei, wenn dieselbe am Ziel vorhanden ist.

Manchmal kann es vorkommen, dass Sie eine Datei am Ziel ändern und nicht möchten, dass rsync sie überschreibt.

Um das Überschreiben geänderter Zieldateien zu vermeiden, verwenden Sie -u Option.

Zum Beispiel:

rsync -avu /home/test/Desktop/Linux/ /home/test/Desktop/rsync

20. Den Unterschied zwischen Quell- und Zieldatei zeigen

Wenn Sie mit der Datenübertragung beginnen, können Sie das -i verwenden Flag mit rsync, um zu prüfen, ob es einen Unterschied zwischen Quelle und Ziel gibt.

Zum Beispiel:

rsync -avi /home/test/Desktop/Linux/ /home/test/Desktop/rsync

Das obige Beispiel zeigt die sample2rs.txt Datei fehlt am Ziel.

Mögliche Buchstaben in der Ausgabe sind:

  • f steht für Datei
  • d zeigt an, dass die Zieldatei fraglich ist
  • t zeigt an, dass sich der Zeitstempel geändert hat
  • s zeigt an, dass sich die Größe geändert hat

Linux
  1. sa-Befehlsbeispiele in Linux

  2. w Befehlsbeispiele unter Linux

  3. ac-Befehlsbeispiele in Linux

  4. df-Befehlsbeispiele in Linux

  5. du-Befehlsbeispiele in Linux

17 nützliche rsync (Remote Sync)-Befehlsbeispiele in Linux

Rsync-Befehl in Linux mit Beispielen

Linux Rsync-Befehlsbeispiele für Anfänger

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

Linux rsync-Befehlsbeispiele

id-Befehlsbeispiele in Linux