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

So sichern und wiederherstellen Sie Dateien mit BorgBackup unter Linux

Unter Linux gibt es mehrere Sicherungstools, die Funktionen für die Sicherung auf Systemebene sowie die Sicherung von Benutzerdaten bieten. In diesem umfassenden Artikel werden wir uns ansehen, was BorgBackup ist und wie man Dateien mit Borg in Linux- und Unix-ähnlichen Systemen sichert und wiederherstellt.

1. Einführung

Wenn ich bei meiner Arbeit mit vielen Daten zu tun habe, stellen sich mir zunächst folgende offensichtliche Fragen:1. Was ist, wenn ich meine Daten verliere? 2. Wie gut sind meine Daten gesichert?

Dasselbe Szenario wird auf die persönliche Maschine angewendet. Sie sollten Ihre Daten je nach Wichtigkeit immer sichern und Ihre Daten vor illegalem Zugriff schützen.

Unabhängig davon, ob es sich um Ihre persönlichen Daten oder offizielle Daten handelt, sollten Sie immer eine gute Backup-Strategie planen und robuste Backup-Tools verwenden, die Ihnen helfen, Ihre wichtigen Daten zu sichern. Eine der am meisten empfohlenen und am weitesten verbreiteten Open-Source-Backup-Anwendungen ist "Borg" .

2. Was ist Borg?

BorgBackup, kurz Borg, ist ein Backup-Tool, das entwickelt wurde, um eine effiziente Möglichkeit zum Sichern Ihrer Daten mithilfe der Deduplizierungstechnik bereitzustellen.

Einige der einzigartigen Features von Borg sind unten aufgeführt.

  • Deduplizierung - Die Deduplizierungstechnik speichert nur die inkrementellen Kopien der Daten, was perfekt für tägliche Backups ist.
  • Plattformübergreifend - Borg kann unter Linux, Mac OS X und FreeBSD installiert und verwendet werden.
  • Sicher - Unterstützt Datenverschlüsselung mit AES Verschlüsselung (256-Bit), um die Authentizität zu überprüfen HMAC-SHA256 verwendet wird.
  • Komprimierung - Daten können mit den folgenden Komprimierungsmethoden komprimiert werden:
    • LZ4 -> Superschnell, geringe Komprimierung.
    • ZSTD -> Hohe Geschwindigkeit und niedrige Komprimierung auf Niedrige Geschwindigkeit und hohe Komprimierung.
    • ZLIB -> Mittlere Geschwindigkeit, mittlere Komprimierung.
    • LZMA -> Niedrige Geschwindigkeit, hohe Komprimierung.
  • Remote-Sicherung - Daten können über das SSH-Protokoll auf Remote-Rechnern gesichert werden.

3. Installieren Sie Borg unter Linux

Borg ist in den Standard-Repositories der meisten Linux-Distributionen verfügbar. Es kann also mit dem verteilungsspezifischen Paketmanager installiert werden.

Um borg in Alpine Linux zu installieren, führen Sie den folgenden Befehl aus:

$ sudo apk add borgbackup

Um borg in Arch Linux und seinen Varianten wie EndeavourOS und Manjaro Linux zu installieren, führen Sie den folgenden Befehl aus:

$ sudo pacman -S borg

Installieren Sie borg in einer Debian/Ubuntu-basierten Distribution:

$ sudo apt install borgbackup -y

Installieren Sie borg in Fedora, RHEL, CentOS, AlmaLinux und Rocky Linux:

$ sudo dnf install borgbackup -y

Installieren Sie Borg in openSUSE:

$ sudo zypper install borgbackup -y

Da borg in Python geschrieben ist , können Sie den Python-Paketmanager PiP verwenden borg installieren. Abhängig von der installierten Pip-Version können Sie einen der folgenden Befehle ausführen.

$ pip install borgbackup

Oder,

$ pip3 install borgbackup

Nach der Installation können Sie die Borg-Installation überprüfen, indem Sie die Versions- und Hilfebefehle ausführen:

$ borg --version
$ borg --help

4. Erstellen Sie Ihr erstes Backup mit Borg

Sie müssen zwei wichtige Begriffe verstehen, bevor Sie Ihr erstes Backup erstellen.

  • Archive - Sicherungskopien (Snapshots) Ihrer Daten werden als Archiv bezeichnet.
  • Repositorys - Verzeichnisse in Ihrem lokalen oder entfernten Dateisystem, in denen Archive gespeichert werden.

Initialisieren Sie zuerst ein Repository (Verzeichnis), in dem die Archive gespeichert werden.

Ich habe eine Liste von Dateien in einem Verzeichnis namens "source" und erstellte ein neues Verzeichnis mit dem Namen "backup" die als mein Repository zum Speichern von Archiven dienen wird.

5. Repository initialisieren

Führen Sie borg init aus Befehl zum Initialisieren des Sicherungsverzeichnisses. Das Backup-Verzeichnis kann sich auf einem lokalen Computer oder einem Remote-Computer befinden. In meinem Fall initialisiere ich das Verzeichnis (d. h. backup ), die ich bereits erstellt habe.

$ borg init --encryption=none /home/karthick/borg/backup
$ borg init --encryption=repokey /home/karthick/borg/backup
$ borg init --encryption=keyfile /home/karthick/borg/backup

Wenn Sie ein Repository initialisieren, können Sie die Art der Verschlüsselung auswählen . Wenn Sie den Verschlüsselungstyp als "Keine" verwenden , wird keine Verschlüsselung angewendet. Wenn Sie "repokey" verwenden und "Schlüsseldatei" Als Verschlüsselungstyp wird AES-CTR-256 verwendet zur Verschlüsselung.

Wählen Sie einen beliebigen Verschlüsselungstyp und führen Sie init aus Befehl. In meinem Fall wähle ich als Verschlüsselungstyp keine zu Demonstrationszwecken.

6. Sichern Sie Dateien mit Borg

6.1. Erstes Backup erstellen

Sobald das Repository initialisiert ist, können Sie Sicherungsarchive erstellen, indem Sie den folgenden Befehl ausführen:

$ borg create --stats --progress /home/karthick/borg/backup::25-11-2021 /home/karthick/borg/source/

Hier gebe ich den Archivnamen im Datumsformat "25-11-2021" an Simulation täglicher Backups. Ohne --stats und --progress Flags, die Ausgabe des create-Befehls ist ruhig.

6.2. Dateien beim Erstellen von Backups anzeigen

Sie können auch die --list kombinieren und -v Flag, um die Liste der Dateien im Archiv anzuzeigen, während borg create ausgeführt wird Befehl.

$ borg create --list -v /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/

6.3. Erstellen Sie komprimierte Backups

Standardmäßig verwendet borg das lz4 Komprimierungsalgorithmus. Der lz4-Komprimierungsalgorithmus ist sehr schnell und hat ein niedriges Komprimierungsverhältnis. Falls Sie einen anderen Komprimierungsalgorithmus verwenden möchten, können Sie --compression verwenden kennzeichnen und den Typ zusammen mit der Komprimierungsstufe übergeben.

Wenn ich zum Beispiel die zstd verwenden möchte Algorithmus, dann lautet mein Befehl wie folgt.

$ borg create --compression zstd,1 /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/

In der offiziellen Dokumentation von Borg können Sie sich verschiedene Komprimierungsalgorithmen und deren Niveau ansehen .

6.4. Archivinformationen abrufen

Sie können die info verwenden Befehl, um Informationen über ein bestimmtes Archiv zu erhalten.

$ borg info /home/karthick/borg/backup/::25-11-2021

7. Sicherungen auflisten

Verwenden der borg list Befehl können Sie Ihr Repository abfragen, um die Liste der Archive zu finden und welche Dateien sich in den Archiven befinden.

Führen Sie den folgenden Befehl aus, um nur die Liste der Archive abzurufen.

$ borg list /home/karthick/borg/backup

Beispielausgabe:

25-11-2021 Thu, 2021-11-25 13:16:53 [653d952301fc70ab9f2f74794361359144e05f5534e668ef4a4957d2c7f67937]
26-11-2021 Thu, 2021-11-25 13:19:51 [473bbe30fbe8597b63910310d567e69b501b2fb7127f04a78da76ab59d90114f]
27-11-2021 Thu, 2021-11-25 13:20:01 [0e6813f1a05246d43d196de9d28034d0397b4ae50cd20ee50163e347efee3e2a]

Sie können auch --json verwenden -Flag, das weitere Informationen über das Repository und die Liste der Archive im json liefert formatieren.

$ borg list --json /home/karthick/borg/backup

7.1. Dateien in Archiven auflisten

Führen Sie den folgenden Befehl aus, um die Liste der Dateien in einem Archiv abzurufen. Hier liste ich Dateien aus dem Archiv "25-11-2021" auf .

$ borg list /home/karthick/borg/backup::25-11-2021

Beispielausgabe:

drwxrwxr-x karthick karthick 0 Thu, 2021-11-25 12:48:58 home/karthick/borg/source
-rw-r--r-- karthick karthick 807 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/project_profile.txt
-rw------- karthick karthick 2301 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/hist.txt
-rw-r--r-- karthick karthick 220 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/external.txt
-rw-r--r-- karthick karthick 3895 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/config.txt

Sie können auch die --json-lines verwenden -Flag, um den Archivinhalt in JSON aufzulisten formatieren.

7.2. Dateien und Verzeichnisse vom Backup ausschließen

Sie können Dateien und Verzeichnisse mit -e ausschließen oder --exclude Flagge.

$ borg list /home/karthick/borg/backup::25-11-2021 --exclude "hist"

8. Finden Sie den Unterschied zwischen Archiven

Sie können den diff verwenden Befehl zum Vergleichen zweier Archive.

Ich erstelle eine neue Datei namens datafile.txt unter source Verzeichnis. Ich habe auch ein weiteres Archiv mit dem Namen 28-11-2021 erstellt .

Jetzt kann ich das neue Archiv und das alte Archiv wie folgt vergleichen:

$ borg diff /home/karthick/borg/backup/::27-11-2021 28-11-2021
added 2.89 kB home/karthick/borg/source/datafile.txt

9. Archive umbenennen

Sobald ein Archiv erstellt wurde und Sie es umbenennen möchten, können Sie dies mit borg rename tun Befehl.

Nehmen wir an, ich möchte das Archiv "27-11-2021" umbenennen bis "29-11-2021" , kann ich dies tun, indem ich den folgenden Befehl ausführe.

$ borg rename /home/karthick/borg/backup/::27-11-2021 29-11-2021

10. Dateien mit borg wiederherstellen (Daten aus dem Archiv extrahieren)

Der Hauptfokus beim Sichern der Daten liegt auf deren Wiederherstellung, wann immer sie benötigt wird. Sie können also den borg extract verwenden Befehl zum Abrufen der Daten aus den Archiven. Wenn Sie den extract ausführen Befehl, werden die Daten in das aktuelle Arbeitsverzeichnis extrahiert, von wo aus Sie den Befehl zum Extrahieren ausführen.

Führen Sie den folgenden Befehl aus, um ein Archiv in das aktuelle Arbeitsverzeichnis zu extrahieren. Mit dem -v und --list Flag hinzugefügt, zeigt es Ihnen die Liste der extrahierten Dateien.

$ borg extract -v --list backup/::25-11-2021

Sie können auch --dry-run verwenden Flag, das nur anzeigt, was extrahiert werden soll, anstatt es zu extrahieren.

$ borg extract --dry-run -v --list backup/::25-11-2021

Sie können ein bestimmtes Verzeichnis aus dem Archiv extrahieren, indem Sie den Verzeichnisnamen übergeben. Da ich nur ein Verzeichnis in meinem Archiv habe, wird es dieses abrufen.

$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/

10.1. Dateien von der Wiederherstellung ausschließen

Sie können auch --exclude hinzufügen um Dateien beim Extrahieren eines Verzeichnisses wegzulassen. Hier extrahiere ich alle Dateien mit Ausnahme von Dateien mit hist .

$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/ --exclude "hist"

11. Repository und Archive mounten und unmounten

Sie können das Repository oder ein bestimmtes Archiv als Fuse-Dateisystem einhängen. Sie können dann Dateien mithilfe des gemounteten Archivs wiederherstellen.

Um das gesamte Repository zu mounten, führen Sie die folgenden Befehle aus:

$ mkdir /tmp/borg/
$ borg mount /home/karthick/borg/backup/ /tmp/borg/
$ ls -l /tmp/borg/

Beispielausgabe:

drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 25-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 26-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 27-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 28-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:32 29-11-2021

Sie können aus der obigen Ausgabe sehen, dass alle meine Archive als Verzeichnis gemountet sind, und jetzt kann ich sie einfach wiederherstellen, indem ich die Dateien kopiere.

Um bestimmte Archive zu mounten, fügen Sie einfach den Archivnamen zusammen mit dem Repository hinzu.

$ borg mount /home/karthick/borg/backup/::25-11-2021 /tmp/borg/

Verwenden Sie zum Aushängen des gemounteten Repositorys oder der Archive den borg umount Befehl.

$ borg umount /tmp/borg
$ ls -l /tmp/borg

12. Archive bereinigen

Die borg prune Der Befehl ist sehr nützlich, wenn Sie Ihre Backups automatisieren und nur bestimmte Kopien behalten und die verbleibenden Kopien bereinigen möchten.

Die Optionen in der obigen Tabelle entscheiden, wie viele Archivkopien in Ihrem Repository gehalten werden. Zum Beispiel, wenn ich nur 2 Exemplare behalten möchte aus meinem wöchentlichen Backup, dann lautet mein Befehl wie folgt.

$ borg prune -v --list --keep-weekly=2 /home/karthick/borg/backup/

Sie können die oben genannte Bedingung auch nur auf bestimmte Archive anwenden. Nehmen wir zum Beispiel an, ich habe 10 Archive in meinem Repository und möchte die Aufbewahrungsregel für archive7 anwenden, dann kann ich den --prefix verwenden Flag, um die Bedingung festzulegen.

$ borg prune -v --list --keep-weekly=2 --prefix='{archive name}' /home/karthick/borg/backup/

Vor dem Ausführen von prune Führen Sie mit dem Befehl --dry-run einen Probelauf durch Flagge.

13. Repository löschen und archivieren

Sie können ein Archiv oder das gesamte Repository mit dem borg delete löschen Befehl.

Um ein einzelnes Archiv zu löschen, müssen Sie den Archivnamen angeben.

$ borg delete /home/karthick/borg/backup/::26-11-2021

Um das gesamte Archiv zu löschen, geben Sie einfach den Repository-Pfad an. Beim Löschen des gesamten Verzeichnisses werden Sie zur Bestätigung aufgefordert.

$ borg delete /home/karthick/borg/backup/

14. Passphrase des Schlüssels ändern

Bisher habe ich mein Beispiel gezeigt, ohne das Repository zu verschlüsseln. Wie im ersten Abschnitt vorhergesagt, können Sie ein Verzeichnis mit aktivierter Verschlüsselung und repokey initialisieren oder keyfile verwendet wird, werden Sie aufgefordert, optional eine Passphrase festzulegen.

$ borg init --encryption=repokey /home/karthick/borg/bkup/

Von nun an sollte ich jedes Mal, wenn ich versuche, eine Operation über dieses Repository durchzuführen, die Passphrase angeben. Schauen Sie sich das folgende Bild an, ich versuche, das Repository aufzulisten, und ich muss eine Passphrase dafür angeben.

Nehmen wir nun an, Sie möchten die Passphrase ändern, dann können Sie dies mit borg change-passphrase tun Befehl.

$ borg key change-passphrase -v /home/karthick/borg/bkup

Sie können die Passphrase auch mithilfe von Umgebungsvariablen festlegen.

$ BORG_PASSPHRASE="old password" BORG_NEW_PASSPHRASE="new password" borg key change-passphrase /home/karthick/borg/bkup

15. Schlüssel exportieren und importieren

Sie können den Repository-Schlüssel sichern, indem Sie ihn exportieren und später bei Bedarf importieren.

Führen Sie den folgenden Befehl aus, um den Schlüssel zu exportieren:

$ borg key export bkup/ ./key
$ cat ./key

Um den Schlüssel in dasselbe Repository zu importieren, führen Sie den folgenden Befehl aus:

$ borg key import bkup/ ./key

16. Arbeiten mit Remote-Repositories

Was wir bisher gesehen haben, sichert Ihre Daten auf derselben Maschine. Borg unterstützt auch Remote-Repositorys, in denen Sie Ihre Daten auf jedem Remote-Computer sichern können. Der Remote-Host sollte über SSH erreichbar sein.

Syntax:

$ borg init [email protected]:/path/to/repo

Beispiel:

$ borg init [email protected]:/home/karthick/borg/bkup

Sie können alle Arten ähnlicher Vorgänge ausführen, die Sie mit einer lokalen Sicherung ausführen können. Um beispielsweise die Sicherung wiederherzustellen, können Sie extract verwenden und Sie können auch den mount verwenden Befehl zum Mounten eines Remote-Repositorys.

Wenn Sie hier auf das Remote-Verzeichnis zeigen, müssen Sie das ssh-Protokoll als "ssh://[email protected]:port/path/to/repo" angeben ".

$ borg mount ssh://[email protected]:2222/home/karthick/borg/bkup /tmp/borg
$ borg extract ssh://[email protected]:2222/home/karthick/borg/bkup

17. Borg-GUI-Desktop-Clients

Da BorgBackup ein reines Kommandozeilentool ist, ist es fast unmöglich, sich alle Befehle zu merken. Einige von Ihnen bevorzugen vielleicht eine nette grafische Anwendung, mit der Sie Daten über eine grafische Oberfläche sichern können. Mach dir keine Sorgen!

Vorta ist ein GUI-Desktop-Client für BorgBackup. Mit Vorta können Sie die Borg-Anwendung einfach in Ihre bevorzugte Desktop-Umgebung integrieren. Die Befehle müssen nicht auswendig gelernt werden. Alles kann über eine einfache grafische Oberfläche erledigt werden!

Weitere Informationen zur Installation und Verwendung von Vorta finden Sie in der folgenden Anleitung.

  • Vorta – Ein grafisches Frontend für BorgBackup

18. Fazit

In diesem Artikel haben wir gesehen, wie Sie mit borg Ihre Daten unter Linux sichern und wiederherstellen können. Borg hat so viele Funktionen, die Sie verstehen können, indem Sie das Tool testen. Eine gute Alternative für Borg ist Timeshift um eine Sicherung auf Systemebene und rsync durchzuführen um Benutzerdateien und -verzeichnisse zu übernehmen.


Linux
  1. MySQL:So sichern (dumpen) und wiederherstellen Sie eine Datenbank mit mysqldump

  2. So sichern und wiederherstellen Sie Anwendungseinstellungen mit Mackup auf einem neu installierten Linux-System

  3. So sichern und wiederherstellen Sie das SVN-Repository unter Linux

  4. So archivieren und komprimieren Sie Dateien unter Linux

  5. So sichern und wiederherstellen Sie eine Datenbank in PostgreSQL

So sichern und wiederherstellen Sie Daten mit Restic unter Linux

So sichern und wiederherstellen Sie ein Linux-System mit Timeshift

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

So verwenden Sie Timeshift zum Sichern und Wiederherstellen von Linux

So klonen und wiederherstellen Sie eine Linux-Partition mit dem dd-Befehl

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