GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

Suchen Sie nach einer zuverlässigen und robusten Lösung, um Ihre Daten unter Linux zu sichern? Rsync hast du abgedeckt! Diese Anleitung führt Sie durch die Schritte zum Sichern von Dateien und Verzeichnissen mit Rsync unter Linux.

1. Einführung

Wenn Sie Ihre Daten nie sichern, wenn Sie davon ausgehen, dass alles gut funktionieren wird, dann würde ich sagen, dass Sie sich irren.

Fragen Sie einfach alle Linux-Benutzer da draußen, sie werden den Schmerz teilen, ihr System/ihre Daten nicht zu sichern. Als Neuling habe ich diesen Fehler einmal gemacht und gelernt, wie wichtig Backups sind.

Es gibt viele Backup-Tools für Linux- und Unix-Plattformen. Rsync (Remote Sync) gilt als eines der am weitesten verbreiteten und vertrauenswürdigsten Backup-Tools.

2. Sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

Mit Rsync können wir,

  1. gesamtes System sichern,
  2. oder einzelne Dateien und Verzeichnisse sichern.

Beim ersten Typ kopieren wir das gesamte Linux-Dateisystem auf ein externes Gerät oder eine Netzwerkfreigabe. Sie können diese Kopie verwenden, um die Maschine im Falle eines Systemausfalls wieder in den ursprünglichen Zustand zu versetzen.

Der zweite Typ ist das Sichern oder Kopieren nur der ausgewählten Dateien und Verzeichnisse. Sie können beispielsweise die wichtigen Konfigurationsdateien oder das gesamte $HOME kopieren Verzeichnis und schließen Sie alles andere aus.

Wir haben Ihnen bereits gezeigt, wie Sie ein gesamtes Linux-System mit Rsync sichern . Dieser Leitfaden konzentriert sich auf selektive Sicherungsdateien und -verzeichnisse mit Rsync unter Linux.

2.1. Speichermedium auswählen

Entscheiden Sie als ersten Schritt, wo Sie Ihre Daten sichern möchten. Es ist sehr wichtig!

Sie können Ihre Daten auf einer externen Festplatte, einem Cloud-Speicher oder einem Network Attached Storage (NAS) sichern. Eine einfache und kostengünstige Möglichkeit ist die Verwendung einer externen Festplatte.

Wenn Sie zwei separate Laufwerke in Ihrem Computer haben, können Sie eines der Laufwerke verwenden, um Ihre Daten zu sichern, da beide nicht gleichzeitig ausfallen.

Hinweis:

Wenn Sie die Sicherung ernst nehmen, legen Sie die Sicherung nicht auf demselben Laufwerk selbst ab. Verwenden Sie immer externe Laufwerke, sekundäre Laufwerke, Netzwerkfreigaben und Cloud-Speicher usw.

Zu Demonstrationszwecken verwende ich 1 TB externe Festplatte in diesem Handbuch.

2.3. Sichern Sie Dateien mit Rsync

Die allgemeine Syntax von Rsync zum Kopieren von Daten von einem Ort zum anderen lautet:

rsync [OPTION…] SRC… [DEST]

Hier,

  • OPTION - die Liste der Rsync-Optionen
  • SRC - Quelldatei/-verzeichnis
  • DEST - Ziel

Hier ist ein einfacher Rsync-Befehl zum Sichern oder Kopieren von Dateien von einem Ort zum anderen im lokalen System selbst.

$ rsync src_file dest_file

Beispiele:

$ rsync -auv ostechnix.txt ostechnix-bak.txt

Hier,

  • -a - Archivmodusmodus (Beibehaltung von Dateieigenschaften und Sym-Links)
  • -u - Dateien überspringen, die auf der Empfängerseite neuer sind.
  • -v - Ausführlicher Modus

Der obige Befehl speichert die Sicherungsdatei ostechnix-bak.txt Datei im aktuellen Verzeichnis. Sie können auch ein anderes Zielverzeichnis wie unten angeben:

$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt

Wenn Sie den Zieldateinamen nicht angeben, verwendet Rsync den gleichen Namen der Quelldatei wie die Zieldatei.

Das Speichern von Sicherungsdateien auf derselben Festplatte ist eigentlich keine Sicherung. Sie müssen die Sicherungsdaten auf einem externen Laufwerk oder einer Netzwerkfreigabe oder zumindest in einer anderen Partition speichern.

Der folgende Befehl sichert beispielsweise die Datei auf meinem externen Laufwerk:

$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/

Rsync hat viele erweiterte Optionen. Sehen Sie sich das folgende Beispiel an:

$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/

Dieser Befehl überträgt Dateien im Archiv- (um Attribute beizubehalten) und im komprimierten (gezippten) Modus mit ausführlicher und für Menschen lesbarer Fortschrittsanzeige.

2.4. Verzeichnisse mit Rsync sichern

Anstatt eine einzelne Datei zu sichern, können Sie alle Dateien in einem Verzeichnis ablegen und dieses Verzeichnis mit Rsync sichern. Dies ist praktisch beim Spiegeln und Synchronisieren von Daten.

Für den Zweck dieser Anleitung zeige ich Ihnen, wie Sie das HOME-Verzeichnis mit Rsync sichern.

2.4.1. Sichern Sie das HOME-Verzeichnis mit Rsync

Rsync ist ein Tool zum inkrementellen Kopieren von Dateien. Bedeutung - es synchronisiert nur neue oder geänderte Daten im Quellverzeichnis (z. B. /home in unserem Fall), anstatt alle Daten von Grund auf neu zu synchronisieren.

Um mein $HOME zu sichern Verzeichnis auf mein externes Laufwerk, habe ich den folgenden Befehl verwendet:

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Lassen Sie uns den obigen Befehl aufschlüsseln und sehen, was jede Option bewirkt.

  • Das Flag -a ist die Kombination vieler Möglichkeiten. Dieses Flag kümmert sich um das rekursive Kopieren und das Beibehalten der Attribute wie Datei-/Verzeichnisberechtigung, Eigentümer usw.
  • Das Flag -v aktiviert den ausführlichen Modus, der mehr Protokolle im Terminal ausgibt, wenn Sie den Befehl rsync ausführen.
  • Das Flag -x wird rsync darauf beschränken, Daten innerhalb der Dateisystemgrenzen zu synchronisieren. Wenn Sie ein Dateisystem in Ihrem Home-Verzeichnis gemountet haben, das während des Synchronisierungsvorgangs übersprungen wird.
  • Das Flag -P ist die Kombination zweier Flags. Es zeigt den Fortschritt jeder Synchronisierung an und behält teilweise übertragene Dateien bei.
  • Das Flag --delete löscht alle Verzeichnisse und Dateien, die nicht in der Quelle, aber im Ziel verfügbar sind. Sie müssen sehr vorsichtig sein während der Verwendung von Flag.
  • Das Flag --exclude-from=File akzeptiert eine Datei als Argument. Diese Datei enthält die Liste der Dateien und Verzeichnisse, die von rsync ignoriert werden.

Ich habe eine Datei namens ignore_list.txt erstellt die die Dateien und Verzeichnisse enthält, die ausgeschlossen werden müssen.

Im obigen Befehl ist dieser Teil --exclude-from=/home/karthick/Work/Backup/ignore_list.txt definiert die Ausschlussliste.

Hier ist der Inhalt der ignore_list.txt Datei:

Die Liste der aus dem obigen Bild auszuschließenden Artikel ist meine persönliche Auswahl und kann für Sie abweichen. Ändern Sie den Parameter entsprechend Ihrer Umgebung.

Die letzten beiden Teile des obigen Rsync-Befehls sind die Quell- und Zielspeicherorte. In meinem Fall ist die Quelle mein $HOME-Verzeichnis und das Ziel mein externes Laufwerk. Ersetzen Sie Quelle und Ziel entsprechend Ihrer Umgebung.

Vorsicht: Wenn Sie den Einhängepunkt für Ihr externes Laufwerk wissen möchten, führen Sie lsblk aus Befehl.

$ lsblk

sdb             8:16   0 931.5G  0 disk  
└─sdb1          8:17   0 931.5G  0 part  /media/karthick/My Passport

Vor dem Ausführen von rsync Befehl zum ersten Mal verwenden, wird immer empfohlen, einen Trockenlauf durchzuführen . Der Probelauf simuliert, welche Änderungen vorgenommen werden. Verwenden Sie denselben Befehl, aber mit -n Flagge.

$ rsync -avxP -n --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Beispielausgabe:

 sending incremental file list
 karthick/
 karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)
...
...
...
sent 88,424 bytes  received 9,459 bytes  195,766.00 bytes/sectotal size is 3,028,935,519  speedup is 30,944.45 (DRY RUN)

Wenn alles wie gewünscht läuft,  entfernen Sie das -n markieren und den Befehl ausführen, um Ihre Daten zu sichern.

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Je nach Größe dauert der erste Durchlauf einige Zeit.

sending incremental file list
karthick/
karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)…
…
…
sent 3,029,863,865 bytes  received 51,335 bytes  53,626,817.70 bytes/sec
total size is 3,028,934,994  speedup is 1.00

2.4.2. Sicherungsskript erstellen

Es kann schwierig sein, sich an einen langen Befehl zu erinnern. Um die Eingabe des langen rsync zu vermeiden Befehl im Terminal können Sie ein einfaches BASH-Skript erstellen und es aufrufen, wann immer Sie das Backup initiieren möchten.

Erstellen Sie ein Skript namens home_dir_backup.sh :

$ nano home_dir_backup.sh

Fügen Sie die folgenden Zeilen hinzu:

#!/usr/bin/env bash

# PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE..
# REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT.

rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Fügen Sie die Rsync-Optionen gemäß Ihren Anforderungen hinzu, entfernen oder ändern Sie sie. Ändern Sie auch die Quell- und Zielpfade mit Ihren eigenen. Speichern und schließen Sie die Datei.

Machen Sie das Skript ausführbar:

$ chmod +x <path-to-home_dir_backup.sh>

Führen Sie nun jederzeit das Skript aus, um die Sicherung des $HOME-Verzeichnisses zu starten:

$ ./path-to-home_dir_backup.sh

Verwenden Sie einen kürzeren Skriptnamen, um ihn sich leichter merken zu können.

Sie können auch einen Softlink erstellen für die Skriptdatei in /usr/bin oder alle benutzerspezifischen Verzeichnisse, die in $PATH verfügbar sind Variable.

2.4.3. Alias ​​erstellen

Eine andere Möglichkeit, das Eingeben langer Befehle zu vermeiden, ist die Verwendung von Aliassen .

Bearbeiten Sie Ihre ~/.bashrc Datei und fügen Sie am Ende die folgende Zeile hinzu:

alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /
media/karthick/"My Passport"/"

Beziehen Sie die bashrc Datei, damit die Änderungen sofort wirksam werden:

$ source ~/.bashrc

Führen Sie nun einfach den folgenden Befehl aus, um das $HOME-Verzeichnis zu sichern:

$ backup

Es liegt an Ihnen, zu entscheiden, was Sie verwenden möchten. Sie können entweder einen Alias ​​erstellen oder ein Skript erstellen und rsync ausführen, indem Sie das Skript auslösen. In meinem Fall habe ich ein Skript erstellt und dann einen Alias ​​für dieses Skript erstellt.

3. Sicherung planen

Sie können cron verwenden Scheduler, um Backup-Jobs so zu planen, dass sie zu einer bestimmten Zeit an einem bestimmten Tag ausgeführt werden.

Bearbeiten Sie die Cronjobs des aktuellen Benutzers mit dem Befehl

$ crontab -e

Definieren Sie Ihren Backup-Zeitplan. Sagen wir zum Beispiel, dass die Sicherung jeden Tag um 3 Uhr morgens ausgeführt werden soll , verwenden Sie die folgende Zeile:

0 3 * * * <rsync-command-to-execute>

Je nach Bedarf können Sie tägliche, wöchentliche oder monatliche Jobs planen.

Wenn Cron-Jobs neu für Sie sind, haben wir eine Liste mit nützlichen Cron-Job-Beispielen zusammengestellt, um Aufgaben in Linux zu planen. Weitere Einzelheiten zur Cron-Nutzung finden Sie in der folgenden Anleitung.

  • Ein Anfängerleitfaden für Cron-Jobs

4. Grafische Rsync-Frontends

Wenn Sie Linux noch nicht kennen, fällt es Ihnen möglicherweise schwer, alle Rsync-Optionen und -Flags zu verstehen. Keine Bange! Es sind einige grafische Frontend-Tools für Rsync verfügbar. Ein solches Tool ist Grsync .

Grsync ist eine einfache grafische Benutzeroberfläche für Rsync. Sie müssen sich keine Rsync-Befehle und deren Optionen merken. Sie können alles über eine einfach zu bedienende GUI erledigen.

Weitere Einzelheiten finden Sie in der folgenden Anleitung:

  • Grsync – Ein einfaches grafisches Frontend für Rsync

5. Fazit

In diesem Handbuch haben wir uns angesehen, wie Sie Dateien und Verzeichnisse mit Rsync unter Linux sichern. Wie Sie sehen können, ist das Kopieren von Dateien und Verzeichnissen mit Rsync sehr einfach!

Wir haben Ihnen auch gezeigt, wie Sie Ihr Home-Verzeichnis mit dem rsync-Befehl sichern und wie Sie es ausführen und planen können.

Diese Methode kann auch auf jede Verzeichnis- oder Dateistruktur in Linux angewendet werden, um die Daten zu sichern. Wenn Sie der Meinung sind, dass Sie eine bessere Backup-Lösung haben, würden wir uns freuen, sie über den Kommentarbereich unten von Ihnen zu hören.

Verwandte Lektüre:

  • Teilweise übertragene Dateien über SSH mit Rsync fortsetzen
  • So sichern und wiederherstellen Sie Dateien mit Deja Dup unter Linux
  • So richten Sie den Sicherungsserver mit Rsnapshot ein
  • So synchronisieren Sie Dateien mit Unison unter Linux
  • So synchronisieren Sie lokale und entfernte Verzeichnisse unter Linux
  • So synchronisieren Sie Dateien und Verzeichnisse mit Zaloha.sh
  • CYA – System-Snapshot- und Wiederherstellungsprogramm für Linux
  • Restic – Eine schnelle, sichere und effiziente Sicherungsanwendung

Linux
  1. So sichern Sie Ihr gesamtes Linux-System mit Rsync

  2. So archivieren Sie Dateien und Verzeichnisse unter Linux [Teil 2]

  3. So archivieren Sie Dateien und Verzeichnisse unter Linux [Teil 1]

  4. So komprimieren und extrahieren Sie Dateien und Verzeichnisse unter Linux mit gzip und bzip2

  5. So finden und löschen Sie leere Verzeichnisse und Dateien in Linux

So sichern und wiederherstellen Sie Dateien mit Deja Dup unter Linux

So synchronisieren Sie Dateien und Verzeichnisse mit Zaloha.sh

So sichern und wiederherstellen Sie Dateien mit BorgBackup unter Linux

Linux-Dateien und -Verzeichnisse mit rsync synchron halten

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

So löschen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile