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.