27Jun

So verwenden Sie rsync zum Sichern Ihrer Daten unter Linux

click fraud protection

Banner

rsync ist ein Protokoll, das für Unix-ähnliche Systeme entwickelt wurde und unglaublich vielseitige Möglichkeiten zum Sichern und Synchronisieren von Daten bietet. 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 auf Windows-Systemen verwendet werden, ist aber nur über verschiedene Ports( z. B. Cygwin) verfügbar. In diesem How-To werden wir ü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".

rsync1
Der Befehl auf Red Hat / CentOS, nachdem er sich als root angemeldet hat( beachten Sie, dass einige aktuelle Distributionen von Red HatUnterstützen Sie die Sudo-Methode).

rsync4
Der Befehl unter Debian / Ubuntu.

Verwenden von rsync für lokale Sicherungen

Im ersten Teil dieses Lernprogramms sichern wir die Dateien von Directory1 in Directory2.Beide Verzeichnisse befinden sich auf derselben Festplatte, aber dies würde genau so funktionieren, wenn die Verzeichnisse auf zwei verschiedenen Laufwerken vorhanden wären. Abhängig davon, welche Art von Sicherungen Sie konfigurieren möchten, gibt es mehrere Möglichkeiten, wie Sie damit umgehen können. Für die meisten Zwecke wird die folgende Codezeile ausreichen:

instagram viewer

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

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

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

1. -a = rekursiv( rekursiv in Verzeichnisse), Links( Symlinks als Symlinks kopieren), Dauer( Berechtigungen beibehalten), Zeiten( Änderungszeiten beibehalten), Gruppe( Gruppe beibehalten), Eigentümer( Eigentümer beibehalten), Gerätedateien beibehalten und spezielle Dateien beibehalten.
2. -v = Ausführlich. Der Grund, warum ich es für wichtig halte, ist, dass Sie genau sehen können, was rsync sichert. Denken Sie darüber nach: Was passiert, wenn Ihre Festplatte schlecht läuft und Dateien ohne Ihr Wissen löscht, dann führen Sie Ihr rsync-Skript aus, und diese Änderungen werden an Ihre Backups übertragen, wodurch alle Instanzen einer Datei gelöscht werden, die Sie nicht haben wolltenloswerden?
3. -delete = Dadurch wird rsync angewiesen, alle Dateien in Directory2 zu löschen, die sich nicht in Directory1 befinden. Wenn Sie diese Option verwenden, sollten Sie aus den oben genannten Gründen auch die ausführlichen Optionen verwenden.

Mit dem obigen Skript wird hier die Ausgabe angezeigt, die mithilfe von rsync zum Sichern von Directory1 in Directory2 generiert wird. Beachten Sie, dass Sie ohne den ausführlichen Schalter keine detaillierten Informationen erhalten würden.

rsync2

Der obige Screenshot zeigt uns, dass File1.txt und File2.jpg entweder als neu oder anders als die in Directory2 vorhandenen Kopien erkannt wurden und daher gesichert wurden. Noob Tipp: Beachten Sie die abschließenden Schrägstriche am Ende der Verzeichnisse in meinem rsync-Befehl - diese sind notwendig, denken Sie daran, sie zu erinnern.

Gegen Ende dieses Tutorials werden wir noch ein paar praktische Switches verwenden, aber denken Sie daran, dass Sie für eine vollständige Liste "man rsync" eingeben und eine vollständige Liste der zu verwendenden Switches anzeigen können.

Das deckt es so weit wie lokale Backups betroffen sind. Wie Sie sehen können, ist rsync sehr einfach zu verwenden. Es wird etwas komplexer, wenn Sie Daten mit einem externen Host über das Internet synchronisieren, aber wir zeigen Ihnen eine einfache, schnelle und sichere Möglichkeit, dies zu tun.

Verwendung von rsync für externe Backups

rsync kann auf verschiedene Arten für externe Backups konfiguriert werden, aber wir werden über die praktischste( auch einfachste und sicherste) Methode des Tunnelns von rsync durch SSH gehen. 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 sichern können. Der Prozess wäre genau der gleiche, wenn ein Host irgendwo im Internet ist, nur beachten Sie, dass Port 22( oder welcher Port, auf dem Sie SSH konfiguriert haben), auf jedem Netzwerkgerät auf der Serverseite weitergeleitet werden muss.

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

# yum -y installieren ssh rsync

# sudo apt-get installieren ssh rsync

Außer der Installation von SSH und rsync auf dem Server müssen Sie nur die Repositories auf dem Server einrichten, auf dem die Dateien gesichert werden sollenund stellen Sie sicher, dass SSH gesperrt ist. Stellen Sie sicher, dass der Benutzer, mit dem Sie arbeiten möchten, über ein komplexes Kennwort verfügt. Es empfiehlt sich außerdem, den Port zu wechseln, für den SSH empfangsbereit ist( Standardwert ist 22).

Wir werden den gleichen Befehl ausführen, den wir für die Verwendung von rsync auf einem lokalen Computer ausgeführt haben, enthalten jedoch die notwendigen Ergänzungen für das Tunneling von rsync über SSH zu einem Server in meinem lokalen Netzwerk. Für den Benutzer "Geek", der sich mit "192.168.235.137" verbindet und dieselben Switches wie oben verwendet( -av -delete), werden wir folgendes ausführen:

$ rsync -av -delete -e ssh /Directory1/ [email protected]: /Directory2/

IfWenn SSH auf einem anderen Port als 22 horcht, müssen Sie die Portnummer angeben, wie in diesem Beispiel, wo ich den Port 12345 verwende:

$ rsync -av -delete -e 'ssh -p 12345' /Directory1/ [email protected]: /Directory2/

rsync3

Wie Sie auf dem obigen Screenshot sehen können, ist die Ausgabe, die beim Backup über das Netzwerk gegeben wird, ungefähr die gleiche wie beim lokalen Backup, die einzige Sache, die sich ändert, ist der Befehl, den Sie verwenden. Beachten Sie auch, dass Sie zur Eingabe eines Passworts aufgefordert haben. Dies ist mit SSH authentifizieren. Sie können RSA-Schlüssel einrichten, um diesen Prozess 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 wie oft Sie es auch möchten.

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

$ 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, Wochentag, Befehl.

Es kann zunächst 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 10 PM an. Da dieser Befehl täglich ausgeführt werden soll, werden die restlichen Felder mit Sternchen versehen und anschließend der Befehl rsync eingefügt.

Nachdem Sie Cron konfiguriert haben, drücken Sie escape und 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 als dies, aber darüber zu reden, würde den Rahmen dieses Tutorials sprengen. Die meisten Leute wollen nur eine einfache wöchentliche oder tägliche Sicherung, und was wir Ihnen gezeigt haben, können Sie leicht erreichen. Weitere Informationen zu Cron finden Sie auf den man-Seiten.

Weitere nützliche Funktionen

Sie können Ihre Backups auch in eine Zip-Datei schreiben. Sie müssen angeben, wo die ZIP-Datei platziert werden soll, und dann dieses Verzeichnis in Ihr Sicherungsverzeichnis rsync. Zum Beispiel:

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

rsync5

Der obige Befehl nimmt die Dateien von Directory1, legt sie in /ZippedFiles/ archive.zip und dann rsyncs dieses Verzeichnis zu Directory2.Zu Beginn könnten Sie denken, 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 geringste Ä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 Directory1 eine Textdatei hinzufügen, weiß rsync, dass Sie nur die wenigen Kilobytes übertragen( obwohl es sich um eine Zip-Datei handelt)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( 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, egal wo Sie gerade sichern) senden. Wir werden diese Methoden in späteren Artikeln behandeln.

Welche Optionen und Funktionen Sie auch wählen, rsync erweist sich als eines der effizientesten und vielseitigsten Backup-Tools auf dem neuesten Stand. Selbst ein einfaches rsync-Skript kann Sie davor bewahren, Ihre Daten zu verlieren.