Beispiele für die Verwendung von RSYNC für lokale und Ferndatensicherungen und -Synchronisierungen

Beispiele für die Verwendung von RSYNC für lokale und Ferndatensicherungen und -Synchronisierungen

RSYNC ist ein sehr nützliches Tool, mit dem Linux -Systemadministratoren Daten lokal oder mit einem Remote -Dateisystem über das SSH -Protokoll oder mithilfe der Verwendung synchronisieren können rsync Daemon. Verwendung rsync ist bequemer als einfach Daten zu kopieren, da sie nur die Unterschiede zwischen einer Quelle und einem Ziel erkennen und synchronisieren können. Das Programm verfügt über Optionen, um Standard- und erweiterte Dateisystemberechtigungen zu erhalten, die Daten während der Übertragungen und mehr zu komprimieren. Wir werden die am häufigsten verwendeten in diesem Leitfaden sehen.

In diesem Tutorial lernen Sie:

  • So verwenden Sie RSYNC, um Daten zu synkronisieren
  • So verwenden Sie RSYNC mit einem Remote -Dateisystem über SSH
  • So verwenden Sie RSYNC mit einem Remote -Dateisystem über den RSYNC -Daemon
  • So schließen Sie Dateien aus der Synchronisation aus

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Verteilungsunabhängige
Software Die RSYNC -Anwendung und optional der RSYNC -Daemon
Andere Es sind keine besonderen Anforderungen erforderlich, um diesem Leitfaden zu folgen.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

RSYNC - Nutzung

Beginnen wir mit der Grundnutzung von RSYNC. Angenommen, wir haben ein Verzeichnis in unserem lokalen Dateisystem und möchten seinen Inhalt mit einem anderen Verzeichnis, möglicherweise auf einem externen USB -Gerät, synchronisieren, um eine Sicherung unserer Dateien zu erstellen. Für unser Beispiel wird unser Quellverzeichnis sein /mnt/data/Quelle, und unser Ziel wird montiert werden /Run/Media/EGDOC/Ziel. Unser Ziel enthält zwei Dateien: Datei1.txt Und Datei2.txt, während das Ziel leer ist. Das erste Mal, dass wir rennen rsync Alle Daten werden kopiert:

Der Zielweg ist das Letzte, was wir im Befehl zur Verfügung gestellt haben. Wenn wir jetzt seinen Inhalt auflisten, können wir sehen, dass es jetzt die Quelldateien enthält:



$ ls/run/media/egdoc/destination/-l Gesamt 0 -rw-r-r--. 1 EGDOC EGDOC 0 Okt 6 19:42 Datei1.txt -rw-r-r--. 1 EGDOC EGDOC 0 Okt 6 19:42 Datei2.txt

In den folgenden Zeiten werden RSYNC ausgeführt, um die beiden Verzeichnisse zu synchronisieren, nur neue Dateien und modifizierte Dateien werden kopiert: Dies spart viel Zeit und Ressourcen. Überprüfen Sie es: Zuerst ändern wir den Inhalt der Datei1.txt im Quellverzeichnis:

$ echo linuxconfig>/mnt/data/source/file1.txt

Dann werden wir rennen rsync Sehen Sie sich die Ausgabe erneut an:

$ rsync -av/mnt/data/source//run/media/egdoc/Zielsende inkrementelle Dateilistenlisten -Datei1.TXT gesendet 159 Bytes erhalten 35 Bytes 388.00 Bytes/Sekunden Gesamtgröße beträgt 12 Beschleunigung 0.06

Die einzige kopierte Datei ist die, die wir geändert haben, Datei1.txt.

Erstellen Sie eine Spiegelkopie der Quelle zum Ziel

Standardmäßig rsync Stellen Sie nur sicher, dass alle Dateien im Quellverzeichnis (mit Ausnahme der als Ausnahmen angegeben) in das Ziel kopiert werden: Es kümmert sich nicht darum, die beiden Verzeichnisse identisch zu halten, und es werden keine Dateien entfernt. Wenn wir daher eine Spiegelkopie der Quelle in das Ziel erstellen möchten, müssen wir die verwenden --löschen Option, die dazu führt, dass Dateien nur innerhalb des Ziels vorhanden sind.

Angenommen, wir erstellen eine neue Datei mit dem Namen Datei3.txt im Zielverzeichnis:

$ touch/run/media/egdoc/destination/file33.txt


Die Datei existiert nicht im Quellverzeichnis. Wenn wir also ausführen rsync mit dem --löschen Option, es wird entfernt:

$ RSYNC -av -DELETE/MNT/DATA/DATA////RUN/MEDIE/EGDOC/Zielsende inkrementelle Dateiliste Löschendatei3.txt ./ gesendete 95 Bytes erhielten 28 Bytes 246.00 Bytes/Sekunde Gesamtgröße beträgt 0 Beschleunigung ist 0.00 

Da diese Synchronisation potenziell zerstörerisch ist, möchten Sie möglicherweise zuerst RSYNC mit dem starten --Probelauf Option, damit das Programm die ausgeführten Vorgänge anzeigen, ohne das Dateisystem tatsächlich zu ändern.

Dateien synchronisieren

Bisher haben wir gesehen, wie man RSYNC verwendet, um zwei lokale Dateisysteme zu synchronisieren. Das Programm kann auch verwendet werden, um Dateien remote mit einer Remote -Shell zu synchronisieren rsh oder ssh, oder der rsync Dämon. Wir werden beide Methoden untersuchen.

RSYNC durch SSH laufen

Für unser Beispiel werden wir immer noch das gleiche Quellverzeichnis verwenden, das wir in den vorherigen Beispielen verwendet haben, aber als Ziel werden wir ein Verzeichnis auf einem Remote -Computer mit IP verwenden 192.168.122.32. Ich habe zuvor einen OpenSSH-Server mit einer Schlüsselanmeldung auf dem Computer eingerichtet, daher muss ich kein Kennwort bereitstellen, um darauf zuzugreifen.

Wie wir rennen könnenrsync über ssh? Damit eine Remote -Synchronisation funktioniert. RSYNC versucht, ein Remote -Dateisystem mit einem Remote -Shell -Programm zu kontaktieren, wenn das Ziel oder der Quellweg a : Charakter. In modernen Versionen von RSYNC ssh wird standardmäßig verwendet; Um eine andere Fernschale zu verwenden oder die Schale explizit zu deklarieren, können wir die verwenden -e Option und liefern es als Argument. Angenommen, unser Zielverzeichnis auf der Remote -Maschine ist /Home/EGDOC/Ziel, Wir können rennen:

$ rsync -av -e ssh/mnt/data/source/[email protected]:/home/egdoc/Ziel

Beachten Sie, dass wir das Ziel im Formular angegeben haben @:/path/to/Verzeichnis.

Kontaktieren Sie eine Fernmaschine über den RSYNC -Daemon

Die andere Methode, mit der wir Dateien mit einem Remote -Computer synchronisieren können, besteht rsync Daemon. Dies erfordert offensichtlich, dass der Daemon installiert wird und auf dem Zielgerät ausgeführt wird. RSYNC versucht, die Remote -Maschine zu kontaktieren, die mit dem Daemon spricht, wenn der Quell- oder Zielweg a enthält :: (Double Colon) Separator nach der Hostspezifikation oder wenn eine RSYNC -URL als angegeben ist rsync: //.



Angenommen, der RSYNC -Daemon hört den Port zu 873 (Die Standardeinstellung) Auf der Remote -Maschine können wir sie durch Ausführen kontaktieren:

$ rsync -av/mnt/data/source/192.168.122.32 ::Modul/Ziel

Alternativ können wir eine verwenden RSYNC URL:

$ rsync -av/mnt/data/source/rsync: // 192.168.122.32/Modul/Ziel

In beiden Beispielen, Modul (im Befehl hervorgehoben), repräsentiert nicht den Namen eines Verzeichnisses auf der Remote -Maschine, sondern den Namen einer Ressource, oder Modul In der vom Administrator konfigurierten RSYNC -Terminologie und über den RSYNC -Daemon zugänglich gemacht. Das Modul kann auf den Pfad im Dateisystem verweisen.

Ausnahme von Dateien aus der Synchronisation

Manchmal möchten wir einige Dateien oder Verzeichnisse aus der Synchronisation ausschließen. Grundsätzlich können wir diese Aufgabe erfüllen: indem wir ein Ausschlussmuster direkt mit angeben --ausschließen (Mehrere Muster können angegeben werden, indem die Option wiederholt wird) oder durch Schreiben aller Muster in eine Datei (eine pro Zeile). Bei Verwendung der letzteren Methode müssen wir den Dateipfad als Argument an die übergeben --ausgeschlossen von Möglichkeit.

Alle Dateien und Verzeichnisse, die dem Muster entsprechen, werden von der Synchronisation ausgeschlossen. Zum Beispiel um alle Dateien mit der “auszuschließen“.TXT ”Erweiterung wir würden ausführen:

$ rsync -av/mnt/data/source//run/media/egdoc/destination -exclude =*.txt


Schlussfolgerungen

In diesem Artikel haben wir RSYNC, ein sehr nützliches Tool, mit dem wir Dateien und Verzeichnisse sowohl in lokaler als auch in Remote -Dateisystemen zusammenstellen können. Wir haben die am meisten verwendeten Optionen und das, was sie erreicht haben, gesehen. Schließlich haben wir gesehen. RSYNC hat viele Optionen, zu viele, um sie hier zu erwähnen. Wie immer finden wir alle Informationen, die wir in das Programmhandbuch benötigen!

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Mastering -Bash -Skriptschleifen beherrschen
  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
  • Ubuntu 20.04 Leitfaden
  • RSYNC -Beispiele unter Linux
  • Verschachtelte Schleifen in Bash -Skripten
  • Big Data Manipulation zum Spaß und Gewinn Teil 1
  • Mint 20: Besser als Ubuntu und Microsoft Windows?