Startseite » wie man » So verwenden Sie rsync zur Sicherung Ihrer Daten unter Linux

    So verwenden Sie rsync zur Sicherung Ihrer Daten unter Linux

    rsync ist ein Protokoll für Unix-ähnliche Systeme, das eine unglaubliche Vielseitigkeit beim 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 jedoch nur über verschiedene Ports (z. B. Cygwin) verfügbar. In diesem How-To wird darüber gesprochen, ob es unter Linux eingerichtet wird. Zunächst müssen wir den rsync-Client installieren / aktualisieren. Bei Red Hat-Distributionen lautet der Befehl "yum install rsync" und unter Debian "sudo apt-get install rsync".


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


    Der Befehl zu Debian / Ubuntu.

    Verwendung von rsync für lokale Sicherungen

    Im ersten Teil dieses Lernprogramms werden die Dateien von Directory1 in Directory2 gesichert. Beide Verzeichnisse befinden sich auf derselben Festplatte, dies würde jedoch genau gleich funktionieren, wenn die Verzeichnisse auf zwei verschiedenen Laufwerken vorhanden wären. Es gibt verschiedene Möglichkeiten, wie wir dies angehen können, 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 Directory2 eine Datei hat, die Directory1 nicht hat, wird es gelöscht. Wenn rsync eine Datei findet, die in Directory1 geändert, erstellt oder gelöscht wurde, werden diese Änderungen auch in Directory2 angezeigt.

    Es gibt viele verschiedene Schalter, die Sie für rsync verwenden können, um es an Ihre speziellen Bedürfnisse anzupassen. Der vorgenannte Code fordert rsync dazu auf, mit den Sicherungen zu tun:

    1. -a = rekursiv (rekursiv in Verzeichnisse), 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 = verbose. Ich denke, dass Verbose wichtig ist, damit Sie genau sehen können, was rsync sichert. Denken Sie darüber nach: Was passiert, wenn Ihre Festplatte schlecht wird und das Löschen von Dateien ohne Ihr Wissen beginnt? Dann führen Sie Ihr Rsync-Skript aus, und diese Änderungen werden in Ihre Sicherungen verschoben, wodurch alle Instanzen einer Datei gelöscht werden, die Sie nicht möchten loswerden?
    3. -delete = Hiermit wird rsync angewiesen, alle Dateien in Directory2 zu löschen, die sich nicht in Directory1 befinden. Wenn Sie sich für diese Option entscheiden, empfiehlt es sich aus den oben genannten Gründen, auch die ausführlichen Optionen zu verwenden.

    Verwenden Sie das obige Skript, um die Ausgabe zu erzeugen, die mit rsync zum Sichern von Directory1 in Directory2 generiert wird. Beachten Sie, dass Sie ohne den ausführlichen Schalter keine derart detaillierten Informationen erhalten würden.

    Der Screenshot oben zeigt uns, dass File1.txt und File2.jpg entweder als neu erkannt wurden oder sich anderweitig von den in Directory2 vorhandenen Kopien geändert haben 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 beachten.

    Wir werden am Ende dieses Tutorials noch ein paar praktische 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.

    Das deckt es ab, was lokale Sicherungen angeht. Wie Sie sehen, ist Rsync sehr einfach zu bedienen. Die Synchronisierung von Daten mit einem externen Host über das Internet wird etwas komplexer. Wir zeigen Ihnen jedoch eine einfache, schnelle und sichere Möglichkeit, dies zu tun.

    Verwenden von rsync für externe Sicherungen

    rsync kann für externe Sicherungen auf verschiedene Arten konfiguriert werden. Wir gehen jedoch auf die praktischste (auch die einfachste und sicherste) Methode des Tunnelns 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 eine Linux-Maschine in einem lokalen Netzwerk sichern können. Der Vorgang wäre derselbe, wenn sich ein Host irgendwo im Internet befindet. Beachten Sie, dass der Port 22 (oder der Port, auf dem Sie SSH konfiguriert haben) auf allen Netzwerkgeräten auf der Serverseite weitergeleitet werden muss.

    Stellen Sie sicher, dass auf dem Server (dem Computer, auf dem die Sicherungen empfangen werden) SSH und rsync installiert sind.

    # yum -y install ssh rsync

    # 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 sicherstellen, 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 von SSH empfangenen Port zu wechseln (Standardeinstellung 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 zum Tunneln von rsync über SSH auf einen Server in meinem lokalen Netzwerk hinzufügen. Für Benutzer "geek", die eine Verbindung zu "192.168.235.137" herstellen und die gleichen Schalter wie oben verwenden (-av -delete), führen wir Folgendes aus:

    $ rsync -av -delete -e ssh / Verzeichnis1 / [email protected]: / Verzeichnis2 /

    Wenn SSH an einem anderen Port als 22 empfangsbereit ist, müssen Sie die Portnummer angeben. In diesem Beispiel verwende ich Port 12345:

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

    Wie Sie in der Abbildung oben sehen können, ist die Ausgabe, die beim Backup über das Netzwerk ausgegeben wird, derselbe wie bei einem lokalen Backup. Das einzige, was sich ändert, ist der Befehl, den Sie verwenden. Beachten Sie auch, dass Sie zur Eingabe eines Kennworts aufgefordert wurden. Dies soll mit SSH authentifiziert werden. Sie können RSA-Schlüssel einrichten, um diesen Vorgang zu überspringen. Dadurch wird auch die Automatisierung von Rsync vereinfacht.

    Rsync-Sicherungen automatisieren

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

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

    $ crontab -e

    Sie müssen vi kennen, um diese Datei bearbeiten zu können. Geben Sie "I" für das Einfügen ein und beginnen Sie 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 auf den ersten Blick etwas verwirrend sein, lassen Sie mich ein Beispiel geben. Mit dem folgenden Befehl wird der Befehl rsync jede Nacht um 22:00 Uhr ausgeführt:

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

    Die erste "0" gibt die Minute der Stunde an und "22" gibt 22 PM an. Da wir möchten, dass dieser Befehl täglich ausgeführt wird, werden die restlichen Felder mit Sternchen versehen und der Befehl rsync eingefügt.

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

    Cron kann sehr viel tiefer in die Tiefe gehen, aber dies würde den Rahmen dieses Tutorials sprengen. Die meisten Leute wollen einfach eine einfache wöchentliche oder tägliche Sicherung, und was wir gezeigt haben, kann leicht erreicht werden. Weitere Informationen zu Cron finden Sie in den Manpages.

    Weitere nützliche Funktionen

    Eine weitere nützliche Möglichkeit ist, Ihre Backups in eine ZIP-Datei zu legen. Sie müssen angeben, wo die ZIP-Datei abgelegt werden soll, und dieses Verzeichnis dann mit Ihrem Sicherungsverzeichnis synchronisieren. Zum Beispiel:

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

    Der obige Befehl nimmt die Dateien von Directory1, legt sie in /ZippedFiles/archive.zip ab und rsyncs dieses Verzeichnis mit Directory2. Anfangs denken Sie vielleicht, dass sich diese Methode für große Backups als ineffizient erweisen würde, da 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 10 GB groß ist und Sie dann eine Textdatei zu Directory1 hinzufügen, wird rsync wissen, dass dies alles ist, was Sie hinzugefügt haben (obwohl es sich in einer ZIP-Datei befindet) und nur die wenigen Kilobytes übertragen von geänderten Daten.

    Es gibt verschiedene Möglichkeiten, Ihre rsync-Sicherungen zu verschlüsseln. Die einfachste Methode ist das Installieren der Verschlüsselung auf der Festplatte selbst (derjenigen, auf die Ihre Dateien gesichert werden). Eine andere Möglichkeit ist, Ihre Dateien zu verschlüsseln, bevor Sie sie an einen Remote-Server senden (oder an eine andere Festplatte, auf die Sie gerade Sicherungskopien erstellen). Wir werden diese Methoden in späteren Artikeln behandeln.

    Unabhängig von den gewählten Optionen und Funktionen ist rsync eines der effizientesten und vielseitigsten Backup-Tools, und selbst ein einfaches Rsync-Skript kann Sie vor dem Verlust Ihrer Daten bewahren.