Rsync Linux: Verwendung und Beispiele Befehl

By | February 21, 2020

Die Verwendung von Befehlen unter Linux ist mehr als selbstverständlich, da diese seit vielen Jahren das Herz von Linux sind. Deshalb müssen wir uns der Art und Weise bewusst sein, wie wir diese Befehle verwenden, da einige für grundlegende Aufgaben praktisch sind. andere können gefährlich sein, wenn wir sie nicht richtig verwalten. Einer der funktionalsten Linux-Befehle ist das rsync-Protokoll, das TechnoWikis in diesem Tutorial ausführlich erläutert. Mal sehen, was rsync ist.

Derzeit kann die Wartung einer Infrastruktur jeder Größe ohne Backup als verrückt angesehen werden, eine Festplatte kann jederzeit ausfallen und Sie können Informationen verlieren, die so wertvoll sind wie die Buchhaltung des Unternehmens. In diesem Beitrag werden wir über die Verwendung von Rsync sprechen, einem der besten Tools für Backups in * nix-Systemen. Wir werden von den Grundlagen bis zu fortgeschritteneren Beispielen mit Skripten und Beispielen sehen, die Sie in Ihrer Arbeitsumgebung anwenden können. Es wird ein Handbuch sein, um zu wissen, wie rysnc verwendet wird.

Die Notwendigkeit, dieselben Informationen an verschiedenen Orten zu haben, wird immer größer. Dies liegt daran, dass unser Arbeitsbereich variabel ist und wir unsere Tools immer bei uns haben möchten oder sogar als Sicherungsmaßnahme.

Was ist rsync?
Es ist ein Open Source-Tool zum Übertragen von Dateien und Verzeichnissen zwischen einem Speicherort und einem anderen. Seine Vorteile beruhen hauptsächlich auf der Komprimierung der zu sendenden Informationen. Es ermöglicht die Übertragung über einen SSH- Kanal und überträgt nur die Dateien und Teile von Dateien, die geändert wurden, anstatt die gesamte Datei erneut zu übertragen, ähnlich wie bei Was passiert, wenn die Unterschiede in einer Datei unter der Kontrolle von Git-Versionen übertragen werden?

Der Befehl rsync (Remote Sync) ist ein Befehl, der für das Kopieren und Synchronisieren von Dateien und Verzeichnissen entweder remote oder lokal auf Linux- oder UNIX-Systemen entwickelt wurde.

Mit diesem Befehl können wir Kopien erstellen von:

  • Vor Ort
  • Verwenden einer Remote-Shell
  • Über einen Remote-Rsync-Daemon

Rsync verwendet
Zu den verschiedenen Verwendungszwecken von rsync gehören:

  • Automatisierte Sicherungen auf Festplatten oder Remote-Servern.
  • Synchronisation von entfernten Dateien und Verzeichnissen.
  • Gemeinsame Dateiübertragung.

Rsync Vorteile
  • Es ist schneller als scp (Secure Copy), da rsync ein Upload-Protokoll verwendet, mit dem Sie nur den Unterschied zwischen den Dateien übertragen können. Beim ersten Übertragen der gesamten Datei zum zweiten Mal werden nur die möglicherweise auftretenden Änderungen übertragen.
  • Es ist für Remote-Backups konzipiert.
  • Unterstützt das Kopieren aller Genehmigungen der Dateien, z. B. Eigentümer-, Soft- und Hardlink-Gruppen.
  • Bei Verwendung der Komprimierung beim Senden von Dateien wird weniger Bandbreite benötigt.

Rsync verfügt über eine Delta-Übertragungsfunktion, mit der die über das Netzwerk gesendete Datenmenge reduziert werden kann, sodass nur Unterschiede zwischen den Quelldateien und den vorhandenen Dateien im Remote-Ziel gesendet werden können. Deshalb ist rsync Ideal für Backup und Duplizierung.
Rsync sucht bei der Suche nach zu übertragenden Dateien mithilfe eines lqquick checkqq-Algorithmus, der für die Suche nach Dateien zuständig ist, die einer Änderung unterzogen wurden.

Rsync-Funktionen
Einige seiner Hauptmerkmale sind:

  • Integrieren Sie Funktionen, um Optionen auszuschließen, die GNU tar ähneln
  • Es unterstützt das Kopieren von Links, Geräten, Besitzern, Gruppen und Linux-Berechtigungen
  • Fügen Sie einen CVS-Ausschlussmodus hinzu, mit dem Sie dieselben Dateien ignorieren können, die CVS in seiner Funktion ignorieren würde
  • Benötigt keine Superuser-Berechtigungen (root)
  • Wir können Remote-Shell wie ssh oder rsh verwenden
  • Bietet Dateiübertragungskanalisierung, um die Latenzkosten im Netzwerk zu minimieren
  • Kompatibel mit authentifizierten oder anonymen Rsync-Daemons
  • Es ist schneller als scp

Wir werden sehen, wie Sie die Parameter rsync und rsync verwenden, um Aufgaben wie rsync nur neue Dateien kopieren oder rsync Zieldateien löschen ausführen zu können.

1. Verwendung von rsync

Die Syntax für die Verwendung dieses Befehls lautet wie folgt:

 Optionen für rsync-Zielressourcen 
Rsync-Variablen
Mit dieser Syntax können wir einige Variablen hinzufügen, wie zum Beispiel:

  • -v: detaillierter Modus.
  • -r: Diese Option kopiert die Daten rekursiv, ohne die Zeitstempel und die Berechtigung während des Vorgangs zu belassen.
  • -a: Dateimodus, der das rekursive Kopieren von Dateien ermöglicht und symbolische Links, Dateiberechtigungen, Benutzer- und Gruppenbesitz und Zeitstempel beibehält.
  • -z: Diese Option komprimiert die Dateidaten.
  • -h: Vom Menschen lesbarer Modus, gibt Zahlen in einem vom Menschen lesbaren Format aus.

Schauen wir uns nun einige Beispiele für die Verwendung dieses Befehls an. Am Ende des Tutorials gibt Ihnen TechnoWikis weitere Parameter für die Verwendung von rsync unter Linux.

2. So installieren Sie rsync

Schritt 1

In den meisten aktuellen Systemen ist rsync standardmäßig installiert. Andernfalls können wir Folgendes ausführen:

 yum installiere rsync (Red Hat - CentOS - Fedora) apt-get install rsync (Debian - Ubuntu) 

1-How-to-install-rsync.png

Schritt 2

In jedem Fall müssen wir die Installation von rsync bestätigen, in einigen Systemen wie Ubuntu 20 ist dies bereits standardmäßig der Fall:

2-How-to-install-rsync.png

3. Kopieren Sie Dateien und Kopierverzeichnisse mit rsync

Die erste Verwendung von rsync besteht darin, eine Datei oder ein Verzeichnis lokal zu kopieren oder zu synchronisieren. Mal sehen, wie man rsync-Dateien kopiert, Verzeichnisse mit rsync kopiert und zwei Verzeichnisse mit rsync synchronisiert.

Schritt 1

Dazu führen wir Folgendes aus

 rsync -zvh "Datei" "Ziel" 

3-How-to-install-rsync.png

Schritt 2

Dort sehen wir Details wie:

  • Daten gesendet
  • Menge der empfangenen Daten
  • Übertragungsgeschwindigkeit
  • Gesamtgröße
Schritt 3

Wenn ein Verzeichnis lokal kopiert werden soll, führen wir Folgendes aus:

 rsync -zvh "Verzeichnis" "Ziel" 

4-Kopieren-Dateien-und-Kopieren-Verzeichnisse-mit-rsync.png

4. Kopieren oder synchronisieren Sie die Remote-Ordner rsync oder das Remote-Verzeichnis

Schritt 1

Wir können Dateien lokal auf einen Remotecomputer kopieren oder synchronisieren. Dazu verwenden wir die folgende Syntax:

 rsync -avz file / [email protected]: / destination / 

5-Kopieren oder Synchronisieren von Remote-Ordnern-rsync-o-remote-directory.png

Schritt 2

Wann immer wir die Remote-IP verwenden, müssen wir das Root-Passwort des Remote-Computers eingeben. Wenn wir nun ein Remote-Verzeichnis auf unseren lokalen Server kopieren, verwenden wir die folgende Syntax:

 rsync -azvh [email protected]: / destination / directory / 

6-Kopieren oder Synchronisieren von Remote-Ordnern-rsync-o-remote-directory.png

5. Verwendung von Rsync SSH

SSH (Secure Shell) ist ein zusätzlicher Sicherheitsmechanismus für die Datenübertragung. Dies wird erreicht, da SSH eine sichere Verbindung mit hoher Standardisierungsverschlüsselung verwendet.

Schritt 1

Wenn wir eine lokale Datei mit SSH auf einen Remotecomputer kopieren möchten, müssen wir die Option “-e” mit dem Namen des Protokolls verwenden, das Sie verwenden möchten:

 rsync -avzhe ssh [email protected]: / destination / directory 

7-Rsync-SSH-How-to-Use.png

Schritt 2

Um eine lokale Datei auf einen Remote-Server zu kopieren, verwenden wir die folgende Syntax:

 rsync -avzhe ssh "archive" [email protected]: / destination / 

8-Kopieren-einer-lokalen-Datei-auf-einen-Remote-Server.png

Schritt 3

Wir können im Remote-Verzeichnis überprüfen, ob die Datei oder das Verzeichnis kopiert wurde: 9-Rsync-SSH-How-to-Use.png

6. Rsync zeigt den Fortschritt der Datei- oder Verzeichnisübertragung an

Dies ist eine Methode für ein besseres Übertragungsmanagement. Dies wird mit dem Parameter –progress erreicht:

 rsync -avzhe ssh --progress / source [email protected]: / destination 

10-Rsync-show-file-transfer-progress-or-directory.png

7. Schließen Sie rsync-Verzeichnisse ein oder aus

Die Optionen –include und –exclude sind Optionen, mit denen wir Dateien entweder einschließen oder ausschließen können. Außerdem können wir die Dateien oder Verzeichnisse angeben, die in die Synchronisierung einbezogen werden sollen, oder Dateien und Ordner ausschließen, die nicht übertragen werden sollen.

Seine Verwendung ist wie folgt:

 rsync -avze ssh --include 'Letter *' --exclude '*' [email protected]: / destination 

11-Include-or-exclude-Verzeichnisse-rsync.png

8. Rsync löscht Dateien und Verzeichnisse

Falls sich eine Datei oder ein Verzeichnis nicht an der Quelle befindet, aber bereits am Ziel verfügbar ist, können wir diese Datei oder dieses Verzeichnis während des Synchronisierungsprozesses löschen. Dazu können wir –delete verwenden, um die Elemente zu löschen, die nicht vorhanden sind Auf dem Zielcomputer führen wir Folgendes aus:

 rsync -avz --delete [email protected]: / destination 

12-Rsync-delete-files-and-directory.png

9. Rsync Limit File Size

Mit dem Parameter –max-size können wir die maximale Größe der Objekte angeben, die mit rsync übertragen werden sollen. Dies hilft bei der Steuerung des Remote-Bereichs:

 rsync -avzhe ssh --max-size = '300k' / source / [email protected]: / destination 

13-Rsync-Limit-file-size.png

10. Rsync löscht Quelldateien, wenn die Übertragung erfolgreich war

Mit der Variablen -remove-source-files ist es möglich, dass die an der Quelle synchronisierten Dateien nur gelöscht werden, wenn der gesamte Prozess korrekt war. Dazu verwenden wir Folgendes. Wir sehen, dass die Quelldatei gelöscht wurde.

 rsync --remove-source-files -zvh "Datei" / Ziel / 

14-Rsync-delete-source-files-if-the-transfer-was-korrekt.png

11. Führen Sie rsync aus, ohne die Dateien zu beeinflussen

Dies ist eine ideale Option für Personen, die die Leistung von rsync nicht vollständig kennen, da sie zeigt, was der Befehl tut, aber den Ursprung nicht beeinflusst. Dies wird beispielsweise mit dem Parameter –dry-run erreicht. Wir können sehen, dass die Datei noch da ist.

 rsync --dry-run --remove-source-files -zvh "Datei" / Ziel / 

15 -.- Führen Sie-rsync-aus, ohne die Dateien zu beeinflussen.png

12. Begrenzen Sie die rsync-Bandbreite

Mit dem Parameter –bwlimit kann definiert werden, welche Netzwerkrate rsync für Synchronisationsaufgaben verwenden soll. Dies wird wie folgt erreicht:

 rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / destination 

16 -.- Führen Sie-rsync-aus, ohne die Dateien zu beeinflussen.png

13. Backup mit Rsync

Manchmal müssen wir bestimmte Informationen sichern, bevor wir Änderungen vornehmen. Im Falle eines Fehlers bei der Wiederherstellung aus dem Backup beginnen wir mit einem Labor, das ein Backup von einem Ordner in einen anderen erstellt. Auf diese Weise erstellen wir ein Backup mit rsync vollständig und sicher.

Schritt 1

Wir beginnen mit der Überprüfung, ob rsync installiert ist.

 [user @ TechnoWikis ~] $ welche rsync / usr / bin / rsync 
Schritt 2

Wir werden 2 Ordner für die Quelle und das Ziel der Dateien erstellen.

 mkdir {backup1, backup2} 
Schritt 3

In diesem Fall erstellen wir mehrere Dateien im Ordner backup1, unabhängig von der Größe der Dateien.

 [user @ TechnoWikis ~] $ touch backup1 / file {1.75} 
Schritt 4

Das Verzeichnis sollte 75 Dateien enthalten. Wir machen Backup.

 [user @ TechnoWikis ~] $ ls backup1 / file1 file14 file19 file23 file28 file32 file37 file41 file46 file50 file55 file6 file64 file69 file73 file10 file15 file2 file24 file29 file33 file38 file42 file47 file51 file56 file60 file65 file7 file74 file11 file16 file20 file25 file3 file34 file39 file43 file48 file52 file57 file61 file66 file70 file75 file12 file17 file21 file26 file30 file35 file4 file44 file49 file53 file58 file62 file67 file71 file8 file13 file18 file22 file27 file31 file36 file40 file45 file5 file54 file59 file63 file68 file72 file9 
Schritt 5

Zum Sichern der Dateien auf backup2 verwenden wir. Die Quelle muss in / andernfalls Ihren Ordner und nicht den Inhalt kopieren.

 rsync -r backup1 / backup2 
Schritt 6

Wenn wir das Backup2 eingeben, können wir die 75 Dateien sehen und mit diff sogar überprüfen, ob es sich um zwei identische Verzeichnisse handelt.

 [user @ TechnoWikis ~] $ diff backup1 backup2 
Schritt 7

Wenn Sie einen Softlink aus einer Datei in Verzeichnis 1 erstellen

 ln -s file30 file100 
Schritt 8

Wenn Sie rsync mit -r verwenden, wird der Softlink in diesem Fall nicht synchronisiert. Wenn wir diesmal schauen, haben wir den synchronisierten Softlink.

 rsync -a backup1 / backup2 
Hinweis
Wenn wir nicht sicher sind, was wir unterstützen werden, können wir eine Simulation mit -ny in Verbindung mit -v verwenden, was sehr nützlich sein kann.

 [user @ TechnoWikis ~] $ rsync -anv backup1 / backup2 Senden einer inkrementellen Dateiliste gesendet 606 Bytes empfangen 12 Bytes 1236,00 Bytes / Sek Gesamtgröße ist 6 Beschleunigung ist 0,01 (DRY RUN) 

14. Andere Rsync-Parameter

Wie bereits erwähnt, sind dies einige der zusätzlichen Parameter, die mit rsync unter Linux verwendet werden können:

Rsync-Parameter
  • -t, –times: Behalte die Zeitänderung bei
  • -g, –group: Behalte die Gruppen
  • -o, –owner: behält den Eigentümer des Objekts
  • -B, –block-size = SIZE: Erzwingt eine feste Prüfsummenblockgröße
  • T, –temp-dir = DIR: Dieser Wert erstellt temporäre Dateien im DIR-Verzeichnis
  • z, –compress: Komprimiert Dateidaten während der Übertragung
  • -4, –ipv4: Verwenden Sie nur IPv4
  • -6, –ipv6: Verwenden Sie nur IPv6

Es gibt viel mehr Variablen, aber diese sind mehr als genug, damit Sie rsync unter Linux optimal nutzen können. Wir haben gesehen, wie man rsync mit den nützlichsten Optionen verwendet. Zusammen mit Tools wie cron und Skripten in bash, python haben wir alles Notwendige, um unsere Backups ohne Tools von Drittanbietern zu erstellen.

Leave a Reply

Your email address will not be published.