* Backupprogramm
* in Python geschrieben
* macht inkrementelle Backups
* wahlfreier Zugriff auf Dateien und Versionstände
* man muss also nicht einen kompletten Stand von einem Zeitpunkt wiederherstellen
* man kann eine Datei, in einer bestimmten Version wiederherstellen (ggf. auch an einem anderen Ort)
* Unterstützt Remote-Backups
* über scp
* in dem es sich über ssh auf der Remote-Maschine startet
* hohe Komprimierung möglich
* verschiedene Algorithmen werden unterstützt
* De-Duplizierung
* in der Praxis kann es bei sehr hoher Komprimierung auf 1/3 reduzieren
* Single-Core
* Es wird nur ein Kern genutzt
* das initiale Backup bei hoher Komprimierung kann daher sehr lange dauern
* 1 Terrabyte mehr als 24 Stunden
* Dokumentation: https://borgbackup.readthedocs.io/en/stable
====== Benutzung ======
===== Repository anlegen =====
* Als erstes muss man ein Repository anlegen
* das enthält alle (inkrementellen Backups/aka. Archive) zu einem System
* es handelt sich um ein Verzeichnis + Meta-Daten
borg init --encryption=repokey ssh://remote-user@192.168.15.3/backup/work
* --encrypton
* gibt die Verschlüsselungsmethode (und den Algorithmus) für das Repository an
* gilt für alle Backups/Archive dieses Repositories
* kann im Nachgang nicht mehr geändert werden
* das Passwort schon, die Methode aber nicht
* repokey
* bedeutet es werden Schlüssel erzeugt mit denen die Dateien verschlüsselt werden und diese im Repository abgelegt
* die Schlüssel werden mit einem Passwort verschlüsselt
* es gibt noch andere Möglichkeiten
* ssh://remote-user@192.168.15.3
* das Remote-System auf dem das Repository gespeichert werden soll
* /backup/work
* der Pfad auf dem Remote-System in dem das Repository angelegt werden soll
* es muss sich um einen gültigen (im Sinne von darstellbaren) Verzeichnisnamen handeln
* das Verzeichnis (wenn es schon existiert) sollte leer sein
* ein Repository sollte nur für die Backups eines Systems genutzt werden
===== Backup erstellen =====
* bei Backups über ssh ist es sinnvoll einen Schlüssel auf die Remote-Maschine zu legen um nicht jedes mal das Passwort eingeben zu müssen
borg create -C zstd,22 --progress ssh://remote-user@192.168.15.3/backup/work::20220914 /home/rapunzel
* borg create erstellt ein Backup
* wenn bereits ein Archiv vorhanden ist werden nur die Veränderungen relativ zu diesem (inkrementelles Backup) gesichert
* -C definiert die Kompression
* zstd ist der Algorithmus
* ,22 ist die Kompressionsrate (oder andere Parameter die dem Algorithmus übergeben werden sollen)
* --progress
bedeutet das ausgegeben wird woran gerade gearbeitet wird
* ssh://remote-user@192.168.15.3/backup/work
ist der Pfad zum Repository
* ssh://remote-user@192.168.15.3
definiert das das Repository remote via ssh zu finden ist
* /backup/work
ist der absolute Pfad wo das Backup-Repository zu finden ist
* relative Pfade müssen per ":" vom ssh-Pfad getrennt werden
* ::20220914
Archiv in das gespeichert werden soll
* jedes (inkrementelle) Backup wird in ein eigenes Archiv, innerhalb des gleichen Repositories gespeichert
* sinnvoll ist z.B. das Datum als Name
* /home/rapunzel -> der Pfad (auf der lokalen Maschine) der archiviert werden soll