So verwenden Sie RSYNC mit Beispielen

So verwenden Sie RSYNC mit Beispielen
RSYNC ist ein beliebtes Tool für die Dateisynchronisierung sowohl lokal als auch remote. Im Gegensatz zu anderen Synchronisierungswerkzeugen verwendet RSYNC einen interessanten Algorithmus, der den Bandbreitenverbrauch minimiert. Es bewegt einfach den Teil der Dateien, die sich geändert haben.

Es ist ein starkes Dienstprogramm, das in vielen Situationen dienen kann. In diesem Artikel werde ich vorstellen, wie ich mit RSYNC mit einer Demonstration beginnen kann. Die Demonstration wird auf Ubuntu 18 durchgeführt.04.

Rsync

RSYNC steht für den Begriff Fernsynchronisierung. Trotz des Namens kann die Dateisynchronisation aus der Ferne und lokal verarbeitet. Der Begriff RSYNC wird auch verwendet, um sich auf das RSYNC -Protokoll zu beziehen, das RSYNC für die Synchronisierung verwendet. In diesem Artikel wird RSYNC immer das Werkzeug bezeichnen, nicht das Protokoll.

Aufgrund seiner bloßen Popularität ist RSYNC auf fast jedem einzelnen Linux- und Unix-ähnlichen System erhältlich. Es besteht eine gute Chance, dass es vorinstalliert ist. Wenn nicht, recherchieren Sie ein wenig darüber, wie Sie RSYNC in Ihrem System installieren können.

Hier finden Sie eine Auswahlliste der Funktionen von RSYNC -Angeboten.

  • Verzeichniskopieren
  • Einfache Sicherungskonfiguration
  • Kann über SSH arbeiten
  • Kann als Daemon/Server ausgeführt werden
  • Aufbewahrung von Berechtigungsberechtigten

RSYNC -Nutzung

Bevor wir in RSYNC springen, benötigen wir einige Dummy -Dateien, mit denen wir arbeiten können. Lassen Sie uns zuerst ein Dummy -Verzeichnis erstellen.

$ mkdir -v primär

Nach dem Erstellen ist es Zeit, eine Handvoll Dummy -Dateien zu erstellen. Um eine Datei zu erstellen, werde ich den Befehl touch verwenden. Erfahren Sie mehr über den Touch -Befehl.

$ Touch Dummy 1… 20

Voila! Wir sind jetzt bereit, RSYNC zu verwenden, um Aktionen mit diesen Dummy -Dateien auszuführen.

RSYNC -Befehlsstruktur

RSYNC verwendet die folgende Befehlsstruktur.

$ rsync

Synchronisieren Sie lokale Verzeichnisse

Jetzt ist es Zeit, RSYNC zum Synchronisieren von Dateien über mehrere Ziele hinweg zu verwenden. In diesem Beispiel werden wir den Inhalt von Dir_Primary mit Dir_target synchronisieren.

$ mkdir -v Ziel

Sagen Sie RSYNC, den Inhalt der beiden Verzeichnisse zu synchronisieren.

$ rsync -v -r primär/ Ziel

Hier haben wir zwei verschiedene Argumente verwendet.

-v: Fordert RSYNC an, in den ausführlichen Modus zu stoßen
-R: Rekursiv, für die Verzeichnissynchronisierung erforderlich.

In diesem nächsten Beispiel verwenden wir eine andere Flagge.

$ rsync -v -a primär/ Ziel

-A: Eine Kombinationsflagge, die für "Archive" steht.

Mit diesem Flag synchronisiert RSYNC den Inhalt rekursiv, während symbolische, Spezial-/Gerätedateien, Änderungszeiten, Dateiberechtigungen, Gruppen, Eigentümer usw. erhalten bleiben. Es wird häufiger verwendet als die "-r" -Fahne. Für die Archivierung ist dies eine empfohlene Methode.

Haben Sie bemerkt, dass wir in allen Befehlen, die wir bisher im Fall von Quelle ausgeführt haben, immer das „/“ nach dem Namen des Verzeichnisses behalten? Dies soll RSYNC mitteilen, dass die Quelle der gesamte Inhalt des Quellverzeichnisses ist. Wenn das "/" am Ende des Quellverzeichnisses nicht verwendet wird, erstellt RSYNC einfach eine Kopie des Quellverzeichnisses anstelle seines Inhalts.

Schauen wir es uns mit einem Beispiel an.

$ rsync -v -a Hauptziel

Überprüfen Sie das Ausgangsergebnis.

$ Tree Ziel/

Meistens brauchen wir dies nicht. Abhängig von der Situation könnte es jedoch nützlich sein.

RSYNC -Testlauf

Bevor Sie einen RSYNC -Befehl ausführen, ist es immer wichtig zu überprüfen, ob der Befehl die Aktion wie erwartet ausführt. Wenn Sie die RSYNC-Aktion für einen bestimmten Befehl testen möchten, verwenden Sie die Flag „-n“ oder „-Dry-Run“.

$ rsync -avn primär/ Ziel
$ rsync -avn primäres Ziel

Hier zeigt die Ausgabe, was RSYNC ausführen würde, wenn der Befehl tatsächlich ausgeführt würde. Vergessen Sie nicht, die Flag „-V“ zu verwenden, um eine genaue Darstellung dessen zu verwenden, was passiert.

RSYNC über eine Remoteverbindung

Dies ist ein weiteres interessantes Feature, das RSYNC unterstützt. Wenn Ihr Backup -Standort irgendwo entfernt ist, können Sie RSYNC problemlos so konfigurieren. Beide Maschinen müssen jedoch RSYNC installiert haben. Darüber hinaus müssen beide Systeme SSH -Schlüssel einstellen.

Bereit? Lass uns anfangen. Zuerst ist es die Archivsynchronisierung.

$ rsync -a @:<
destination_dir>

Hier wird dieser Vorgang als "Push" bezeichnet. Das Gegenteil ist als "Pull" bekannt.

$ rsync -a @:

RSYNC behandelt das erste Argument als Quelle, das zweite als Ziel.

Nützliche RSYNC -Optionen

RSYNC unterstützt eine Menge Optionen. Alle dienen ihrem eigenen Zweck. Zum größten Teil werden die meiste Zeit jedoch nur eine Handvoll von ihnen verwendet. Schauen wir uns in diesem Abschnitt einige nützliche RSYNC -Optionen an.

Meistens sind die Dateien, die Sie synchronisieren, nicht komprimiert. Mit der Komprimierung können Sie sowohl Zeit als auch Bandbreite auf Kosten einer kleinen zusätzlichen Verarbeitungsleistung sparen. RSYNC bietet standardmäßig Komprimierung. Verwenden Sie zur Durchführung einer komprimierten Synchronisation das Flag „-Z“.

$ rsync -avz

Diese interessante Flag. Der erste besteht darin, eine Fortschrittsleiste der Übertragung zu zeigen, und das zweite besteht darin, die Wiederaufnahme der unterbrochenen Übertragung zu ermöglichen. Beide Merkmale werden in die „-P“ -Fahne kombiniert.

$ rsync -avzp

Schauen wir uns nun an, wie RSYNC die Datei synchronisiert intelligent umgeht. Führen Sie den vorherigen Befehl erneut aus.

$ rsync -avzp

Hier hat RSYNC nicht alle Dateien erneut hochgeladen. Stattdessen übersprang es diejenigen, die sich überhaupt nicht änderten. In diesem Beispiel hat es alle Dateien übersprungen, da alle im Zielverzeichnis vorhanden sind.

Was ist, wenn Sie eine Datei aus dem Quellverzeichnis gelöscht haben?? Standardmäßig löscht RSYNC nichts aus dem Zielverzeichnis. Verwenden Sie zum Erzwingen von RSYNC-Löschen von Dateien das Flag „-Delete“. Verwenden Sie jedoch den Trockenlauf, um zu testen, ob der Befehl so funktioniert, wie Sie möchten.

$ rsync -avn -Delete

Standardmäßig synchronisiert RSYNC jede einzelne Datei/jedes einzelne Datei/jedes einzelne Verzeichnis aus der Quelle mit dem Zielverzeichnis. In bestimmten Situationen möchten Sie bestimmte Dateien möglicherweise von der Synchronisierung einbeziehen/ausschließen. RSYNC bietet praktische Optionen wie „-ausklammende“ und „-Include“, um bestimmte Dateien auszuschließen/einzuschließen. Übergeben Sie das Dateimuster als Wert für diese Argumente.

$ rsync -avn -exclude = --einschließen =

Sie können auch die größte Dateigröße definieren, die RSYNC synchronisieren sollte. Verwenden Sie dazu das Flag „-Max-Größe“, gefolgt von der Dateigröße.

$ rsync -avn -max -size = '10k'

RSYNC hat ein weiteres interessantes Feature im Ärmel. Benötigen Sie die Quelldatei nach der Synchronisierung nicht mehr? RSYNC kann das, kein Problem. Stellen Sie jedoch sicher, dass Sie RSYNC nicht mit "-Delete" -Flag ausführen. Andernfalls löscht RSYNC die synchronisierten Dateien aus dem Ziel!

$ rsync -av-Remove-Source-Files

Abschließende Gedanken

Dies sind nur ein gemeinsames und einfaches Szenario der RSYNC -Verwendung. Es bietet viel mehr als das. Es ist möglich, RSYNC -Vorgänge entweder mit RSYNC -Daemon oder anderen Skripten zu automatisieren. Hoffentlich war dieser Leitfaden hilfreich, um mit RSYNC zu beginnen.

Interessiert an mehr rsync? Nun, Sie können RSYNC als Dateikopierer verwenden. Es ist effizienter und intelligenter als CP. Eingehende Funktionen und Verwendung finden Sie auf der Seite RSYNC Man.

$ MAN RSYNC

Genießen!