/ / Verwenden von rsync zum Sichern Ihrer Daten unter Linux

So verwenden Sie rsync zum Sichern Ihrer Daten unter Linux

Banner

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

Es kann nur auf Windows-Systemen verwendet werdenverfügbar über verschiedene Ports (z. B. Cygwin). In diesem How-to wird also über das Einrichten unter Linux gesprochen. Zuerst müssen wir den rsync-Client installieren / aktualisieren. Auf Red Hat-Distributionen lautet der Befehl "yum install rsync" und auf Debian "sudo apt-get install rsync".

rsync1

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

rsync4

Der Befehl unter Debian / Ubuntu.

Verwenden von rsync für lokale Sicherungen

Im ersten Teil dieses Tutorials werden wir zurückkehrenup the files from Directory1 to Directory2. Beide Verzeichnisse befinden sich auf derselben Festplatte, dies würde jedoch genauso funktionieren, wenn die Verzeichnisse auf zwei verschiedenen Laufwerken vorhanden wären. Je nachdem, welche Art von Backups Sie konfigurieren möchten, haben Sie verschiedene Möglichkeiten, dies zu tun. Für die meisten Zwecke reicht die folgende Codezeile aus:

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

Der obige Code synchronisiert den Inhalt vonDirectory1 bis Directory2, und lassen Sie keine Unterschiede zwischen den beiden. Wenn rsync feststellt, dass Directory2 eine Datei hat, die Directory1 nicht hat, wird diese gelöscht. Wenn rsync eine Datei findet, die in Directory1 geändert, erstellt oder gelöscht wurde, werden dieselben Änderungen an Directory2 übernommen.

Es gibt viele verschiedene Schalter, die Sie für rsync verwenden können, um es an Ihre spezifischen Bedürfnisse anzupassen. Der oben genannte Code weist rsync an, mit den Sicherungen zu arbeiten:

1. -a = rekursiv (in Verzeichnisse umwandeln), Links (Symlinks als Symlinks kopieren), Perms (Berechtigungen beibehalten), Zeiten (Änderungszeiten beibehalten), Gruppe (Gruppe beibehalten), Besitzer (Besitzer beibehalten), Gerätedateien beibehalten und Spezial beibehalten Dateien.
2. -v = ausführlich. Der Grund, den ich für ausführlich halte, ist, dass Sie genau sehen können, was rsync sichert. Denken Sie darüber nach: Was passiert, wenn Ihre Festplatte kaputt geht und Sie ohne Ihr Wissen mit dem Löschen von Dateien beginnen? Dann führen Sie Ihr rsync-Skript aus, das diese Änderungen in Ihre Sicherungen überträgt und dabei alle Instanzen einer Datei löscht, die Sie nicht erhalten möchten loswerden von?
3. –Delete = Dies weist rsync an, alle Dateien in Directory2 zu löschen, die sich nicht in Directory1 befinden. Wenn Sie sich für diese Option entscheiden, empfehle ich aus den oben genannten Gründen, auch die ausführlichen Optionen zu verwenden.

Nachstehend finden Sie die Ausgabe, die mithilfe von rsync zum Sichern von Directory1 in Directory2 generiert wurde. Beachten Sie, dass Sie ohne den ausführlichen Schalter keine so detaillierten Informationen erhalten würden.

rsync2

Der Screenshot oben sagt uns, dass File1.txt und File2.jpg wurden von den in Directory2 vorhandenen Kopien als neu oder anderweitig geändert erkannt und daher gesichert. Noob-Tipp: Beachten Sie die abschließenden Schrägstriche am Ende der Verzeichnisse in meinem rsync-Befehl. Diese sind erforderlich, denken Sie daran.

Gegen Ende dieses Tutorials werden wir einige weitere nützliche Schalter durchgehen. Denken Sie jedoch daran, dass Sie zum Anzeigen einer vollständigen Liste „man rsync“ eingeben und eine vollständige Liste der zu verwendenden Schalter anzeigen können.

Dies gilt für lokale Sicherungenbesorgt. Wie Sie sehen, ist rsync sehr einfach zu bedienen. Es wird etwas komplexer, wenn Sie Daten mit einem externen Host über das Internet synchronisieren. Wir zeigen Ihnen jedoch eine einfache, schnelle und sichere Möglichkeit, dies zu tun.

Verwenden von rsync für externe Sicherungen

rsync kann auf verschiedene Arten konfiguriert werdenBei externen Sicherungen gehen wir jedoch auf die praktischste (auch einfachste und sicherste) Methode zum Tunneln von rsync durch SSH ein. Die meisten Server und sogar viele Clients verfügen bereits über SSH und können für Ihre rsync-Sicherungen verwendet werden. Wir zeigen Ihnen, wie Sie einen Linux-Rechner in einem lokalen Netzwerk auf einen anderen sichern können. Der Vorgang wäre genau der gleiche, wenn ein Host irgendwo im Internet wäre. Beachten Sie nur, dass Port 22 (oder der Port, auf dem Sie SSH konfiguriert haben) auf allen Netzwerkgeräten auf der Serverseite weitergeleitet werden müsste.

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

# yum -y installiere ssh rsync

# sudo apt-get installiere ssh rsync

Anders als die Installation von SSH und rsync auf demAlles, was wirklich getan werden muss, ist, die Repositorys auf dem Server einzurichten, auf dem die Dateien gesichert werden sollen, und sicherzustellen, dass SSH gesperrt ist. Vergewissern Sie sich, dass der Benutzer, den Sie verwenden möchten, ein komplexes Kennwort hat. Es kann auch sinnvoll sein, den Port zu wechseln, den SSH überwacht (Standard ist 22).

Wir werden den gleichen Befehl ausführen, für den wir getan habenVerwenden von rsync auf einem lokalen Computer, jedoch mit den erforderlichen Ergänzungen zum Tunneln von rsync über SSH zu einem Server in meinem lokalen Netzwerk. Für den Benutzer "geek", der eine Verbindung zu "192.168.235.137" herstellt und dieselben Schalter wie oben verwendet (-av –delete), führen wir Folgendes aus:

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

Wenn SSH auf einem anderen Port als 22 empfangsbereit ist, müssen Sie die Portnummer angeben, z. B. in diesem Beispiel, in dem ich Port 12345 verwende:

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

rsync3

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

Automatisieren von rsync-Sicherungen

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 wie oft Sie möchten, dass sie ausgeführt werden.

Führen Sie Folgendes aus, um die Cron-Tabellendatei für den Benutzer zu bearbeiten, unter dem Sie angemeldet sind:

$ crontab -e

Sie müssen mit vi vertraut sein, um diese Datei bearbeiten zu können. Geben Sie "I" zum 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, Tag der Woche, Befehl.

Anfangs kann es etwas verwirrend sein, also lassen Sie mich Ihnen ein Beispiel geben. Der folgende Befehl führt den Befehl rsync 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 versehen und fügen dann den Befehl rsync 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, aberweiterzumachen würde den Rahmen dieses Tutorials sprengen. Die meisten Leute wollen nur ein einfaches wöchentliches oder tägliches Backup, und was wir gezeigt haben, können Sie leicht erreichen. Weitere Informationen zu Cron finden Sie auf den Manpages.

Andere nützliche Funktionen

Eine andere nützliche Sache, die Sie tun können, setzt IhrBackups in eine Zip-Datei. Sie müssen angeben, wo die Zip-Datei abgelegt werden soll, und dann dieses Verzeichnis mit Ihrem Sicherungsverzeichnis synchronisieren. Zum Beispiel:

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

rsync5

Der obige Befehl übernimmt die Dateien vonDirectory1, legt sie in /ZippedFiles/archive.zip ab und synchronisiert dieses Verzeichnis mit Directory2. Anfänglich könnte sich diese Methode für große Sicherungen als ineffizient herausstellen, da sich die ZIP-Datei jedes Mal ändert, wenn eine Datei geringfügig geändert 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 Sie nur die wenigen Kilobyte hinzugefügt haben (obwohl es sich um eine Zip-Datei handelt) von geänderten Daten.

Es gibt verschiedene Möglichkeitenverschlüsseln Sie Ihre rsync-Backups. Am einfachsten ist es, die Verschlüsselung auf der Festplatte selbst zu installieren (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 der Sie gerade sichern) senden. Wir werden diese Methoden in späteren Artikeln behandeln.

Unabhängig von den von Ihnen gewählten Optionen und Funktionen erweist sich rsync als eines der effizientesten und vielseitigsten Sicherungswerkzeuge, und selbst ein einfaches rsync-Skript kann Sie vor dem Verlust Ihrer Daten bewahren.