* 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