Connect with us

Wie man

So verwenden Sie rsync zum Sichern Ihrer Daten unter Linux

So verwenden Sie rsync zum Sichern Ihrer Daten unter Linux

rsync ist ein Protokoll, das für Unix-ähnliche Systeme entwickelt wurde und unglaubliche Vielseitigkeit beim Sichern und Synchronisieren von Daten bietet. Es kann lokal verwendet werden, um Dateien in verschiedenen Verzeichnissen zu sichern, oder kann so konfiguriert werden, dass es über das Internet mit anderen Hosts synchronisiert wird.

Es kann auf Windows-Systemen verwendet werden, ist jedoch nur über verschiedene Ports (wie Cygwin) verfügbar. In dieser Anleitung werden wir also über die Einrichtung unter Linux sprechen. Zuerst müssen wir den rsync-Client installieren/aktualisieren. Bei Red Hat-Distributionen lautet der Befehl „yum install rsync“ und bei Debian „sudo apt-get install rsync“.


Der Befehl auf Red Hat/CentOS, nachdem Sie sich als root angemeldet haben (beachten Sie, dass einige neuere Distributionen von Red Hat die Sudo-Methode unterstützen).


Der Befehl auf Debian/Ubuntu.

Verwenden von rsync für lokale Backups

Im ersten Teil dieses Tutorials werden wir die Dateien von Directory1 nach Directory2 sichern. Beide Verzeichnisse befinden sich auf derselben Festplatte, aber dies würde genauso funktionieren, wenn die Verzeichnisse auf zwei verschiedenen Laufwerken existieren würden. Es gibt verschiedene Möglichkeiten, dies zu erreichen, je nachdem, welche Art von Backups Sie konfigurieren möchten. Für die meisten Zwecke reicht die folgende Codezeile aus:

$ rsync -av --delete /Directory1/ /Directory2/

Der obige Code synchronisiert den Inhalt von Directory1 mit Directory2 und lässt keine Unterschiede zwischen den beiden. Wenn rsync feststellt, dass Verzeichnis2 eine Datei enthält, die Verzeichnis1 nicht hat, wird sie gelöscht. Wenn rsync eine Datei findet, die in Directory1 geändert, erstellt oder gelöscht wurde, spiegelt es dieselben Änderungen in Directory2 wider.

Es gibt viele verschiedene Schalter, die Sie für rsync verwenden können, um es an Ihre spezifischen Bedürfnisse anzupassen. Hier ist, was der oben genannte Code rsync anweist, mit den Backups zu tun:

1. -a = rekursiv (in Verzeichnisse rekursieren), Links (Symlinks als Symlinks kopieren), Perms (Berechtigungen beibehalten), Zeiten (Änderungszeiten beibehalten), Gruppe (Gruppe beibehalten), Eigentümer (Eigentümer beibehalten), Gerätedateien beibehalten und spezielle Dateien aufbewahren.
2. -v = ausführlich. Der Grund, warum ich die Ausführlichkeit für wichtig halte, ist, dass Sie genau sehen können, was rsync sichert. Denken Sie darüber nach: Was ist, wenn Ihre Festplatte kaputt geht und Dateien ohne Ihr Wissen zu löschen beginnt, dann führen Sie Ihr rsync-Skript aus und es überträgt diese Änderungen auf Ihre Backups, wodurch alle Instanzen einer Datei gelöscht werden, die Sie nicht erhalten wollten loswerden?
3. –delete = Dies weist rsync an, alle Dateien zu löschen, die sich in Verzeichnis2 befinden, die sich nicht in Verzeichnis1 befinden. Wenn Sie sich für diese Option entscheiden, empfehle ich aus den oben genannten Gründen auch die ausführlichen Optionen.

Unter Verwendung des obigen Skripts sehen Sie hier die Ausgabe, die durch die Verwendung von rsync zum Sichern von Verzeichnis1 auf Verzeichnis2 generiert wird. Beachten Sie, dass Sie ohne den ausführlichen Schalter keine so detaillierten Informationen erhalten würden.

Der Screenshot oben zeigt uns, dass File1.txt und File2.jpg entweder als neu erkannt oder auf andere Weise von den in Directory2 vorhandenen Kopien geändert wurden, und daher wurden sie gesichert. Noob-Tipp: Beachten Sie die abschließenden Schrägstriche am Ende der Verzeichnisse in meinem rsync-Befehl – ​​diese sind notwendig, denken Sie daran.

Wir werden gegen Ende dieses Tutorials noch ein paar weitere praktische Schalter durchgehen, aber denken Sie daran, dass Sie für eine vollständige Liste «man rsync» eingeben und eine vollständige Liste der zu verwendenden Schalter anzeigen können.

Das deckt es in Bezug auf lokale Backups ab. Wie Sie sehen, ist rsync sehr einfach zu bedienen. Etwas komplexer wird es, wenn Sie Daten mit einem externen Host über das Internet synchronisieren, aber wir zeigen Ihnen einen einfachen, schnellen und sicheren Weg, dies zu tun.

Verwenden von rsync für externe Backups

rsync kann auf verschiedene Weise für externe Backups konfiguriert werden, aber wir werden die praktischste (auch einfachste und sicherste) Methode zum Tunneln von rsync über SSH erläutern. Die meisten Server und sogar viele Clients verfügen bereits über SSH und können für Ihre rsync-Backups verwendet werden. Wir zeigen Ihnen, wie Sie einen Linux-Rechner zum Sichern auf einen anderen in einem lokalen Netzwerk veranlassen. Der Vorgang wäre genau derselbe, wenn ein Host irgendwo im Internet wäre. Beachten Sie jedoch, dass Port 22 (oder der Port, auf dem Sie SSH konfiguriert haben) an alle Netzwerkgeräte auf der Serverseite weitergeleitet werden müsste.

Stellen Sie auf dem Server (dem Computer, der die Backups empfängt) sicher, dass SSH und rsync installiert sind.

# yum -y ssh rsync installieren

# sudo apt-get install ssh rsync

Abgesehen von der Installation von SSH und rsync auf dem Server müssen Sie lediglich die Repositorys auf dem Server einrichten, auf dem die Dateien gesichert werden sollen, und Stellen Sie sicher, dass SSH gesperrt ist. Stellen Sie sicher, dass der Benutzer, den Sie verwenden möchten, ein komplexes Passwort hat, und es kann auch eine gute Idee sein, den Port zu wechseln, auf dem SSH lauscht (Standard ist 22).

Wir werden den gleichen Befehl ausführen, den wir für die Verwendung von rsync auf einem lokalen Computer ausgeführt haben, aber die erforderlichen Ergänzungen für das Tunneln von rsync über SSH zu einem Server in meinem lokalen Netzwerk hinzufügen. Für den Benutzer „Geek“, der sich mit „192.168.235.137“ verbindet und die gleichen Schalter wie oben verwendet (-av –delete), führen wir Folgendes aus:

$ rsync -av --delete -e ssh /Directory1/ geek@192.168.235.137:/Directory2/

Wenn Sie SSH auf einem anderen Port als 22 abhören, müssen Sie die Portnummer angeben, wie in diesem Beispiel, in dem ich Port 12345 verwende:

$ rsync -av --delete -e 'ssh -p 12345' /Directory1/ geek@192.168.235.137:/Directory2/

Wie Sie aus dem obigen Screenshot sehen können, ist die Ausgabe beim Sichern über das Netzwerk so ziemlich die gleiche wie beim lokalen Sichern. Das einzige, was sich ändert, ist der von Ihnen verwendete Befehl. Beachten Sie auch, dass es zur Eingabe eines Kennworts aufgefordert wurde. Dies dient der Authentifizierung mit SSH. Sie können RSA-Schlüssel einrichten, um diesen Vorgang zu überspringen, was auch die Automatisierung von rsync vereinfacht.

Automatisieren von rsync-Backups

Cron kann unter Linux verwendet werden, um die Ausführung von Befehlen wie rsync zu automatisieren. Mit Cron können wir unser Linux-System nächtliche Backups ausführen lassen oder so oft Sie möchten, dass diese ausgeführt werden.

Um die Cron-Tabellendatei für den Benutzer zu bearbeiten, als der Sie angemeldet sind, führen Sie Folgendes aus:

$ crontab -e

Sie müssen mit vi vertraut sein, um diese Datei zu bearbeiten. Geben Sie „I“ für Einfügen ein und beginnen Sie dann mit der Bearbeitung der Cron-Tabellendatei.

Cron verwendet die folgende Syntax: Minute der Stunde, Stunde des Tages, Tag des Monats, Monat des Jahres, Wochentag, Befehl.

Es kann anfangs etwas verwirrend sein, also lassen Sie mich Ihnen ein Beispiel geben. Der folgende Befehl führt den rsync-Befehl jede Nacht um 22:00 Uhr aus:

0 22 * * * rsync -av --delete /Directory1/ /Directory2/

Die erste „0“ gibt die Minute der Stunde an und „22“ gibt 22 Uhr an. Da dieser Befehl täglich ausgeführt werden soll, lassen wir die restlichen Felder mit Sternchen und fügen dann den rsync-Befehl ein.

Nachdem Sie Cron konfiguriert haben, drücken Sie die Escape-Taste, geben Sie „:wq“ (ohne Anführungszeichen) ein und drücken Sie die Eingabetaste. Dadurch werden Ihre Änderungen in vi gespeichert.

Cron kann viel tiefer gehen, aber es würde den Rahmen dieses Tutorials sprengen. Die meisten Leute werden nur ein einfaches wöchentliches oder tägliches Backup wünschen, und was wir gezeigt haben, können Sie leicht erreichen. Weitere Informationen zu Cron finden Sie auf den Manpages.

Weitere nützliche Funktionen

Eine andere nützliche Sache, die Sie tun können, ist, Ihre Backups in eine ZIP-Datei zu speichern. Sie müssen angeben, wo die ZIP-Datei abgelegt werden soll, und dieses Verzeichnis dann mit Ihrem Backup-Verzeichnis synchronisieren. Beispielsweise:

$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

Der obige Befehl nimmt die Dateien aus Directory1, legt sie in /ZippedFiles/archive.zip ab und synchronisiert dieses Verzeichnis dann mit Directory2. Anfangs denken Sie vielleicht, dass sich diese Methode für große Backups als ineffizient erweisen würde, wenn man bedenkt, dass sich die ZIP-Datei jedes Mal ändert, wenn die kleinste Änderung an einer Datei vorgenommen wird. rsync überträgt jedoch nur die geänderten Daten. Wenn Ihre ZIP-Datei also 10 GB groß ist und Sie dann eine Textdatei zu Directory1 hinzufügen, weiß rsync, dass das alles ist, was Sie hinzugefügt haben (obwohl es sich in einer ZIP-Datei befindet) und überträgt nur die wenigen Kilobytes von geänderten Daten.

Es gibt verschiedene Möglichkeiten, wie Sie Ihre rsync-Backups verschlüsseln können. Die einfachste Methode besteht darin, die Verschlüsselung auf der Festplatte selbst zu installieren (die, auf der Ihre Dateien gesichert werden). Eine andere Möglichkeit besteht darin, Ihre Dateien zu verschlüsseln, bevor Sie sie an einen Remote-Server (oder eine andere Festplatte, auf welche auch immer Sie sichern) senden. Wir werden diese Methoden in späteren Artikeln behandeln.

Welche Optionen und Funktionen Sie auch immer wählen, rsync erweist sich als eines der effizientesten und vielseitigsten Backup-Tools bis heute, und sogar ein einfaches rsync-Skript kann Sie vor dem Verlust Ihrer Daten bewahren.

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia