Backup mit BorgBackup

Was ist BorgBackup?

BorgBackup (kurz: Borg) ist ein deduplizierendes Backup-Programm. Optional unterstützt es Komprimierung und authentifizierte Verschlüsselung. Das Hauptziel von Borg ist es, eine effiziente und sichere Möglichkeit zur Datensicherung zu bieten. Durch die verwendete Technik der Datendeduplizierung ist Borg für tägliche Backups geeignet, da nur Änderungen gespeichert werden. Die authentifizierte Verschlüsselungstechnik macht es für Backups auf nicht vollständig vertrauenswürdigen Zielen geeignet.

Voraussetzungen:
- SSH Zugang
- SSH-Client (z.B. PuTTY)

Installation BorgBackup

Damit Borg genutzt werden kann, muss Borg installiert werden. Dies geschieht über die CLI

Bash
apt update && apt upgrade -y    # Optional: System aktualisieren
apt install borgbackup

Einrichtung des Repositorys

Um ein Repository (Speicherort) anzulegen, reicht ein Befehl aus. path/to/backup ist der Pfad, wo das Backup abgelegt und Verfübar sein soll. Des Weiteren wird nach einer Passphrase (Passwort) für das Repository gefragt.

Bash
borg init --encryption=repokey /path/to/backup

Grundsätzlich sollte ein Backup nie auf dem selbigen System gespeichert werden. Sie könnten z. B. ein externen Storage wie eine NAS oder einen speziellen Backup Server dafür verwenden.

Backup Script

Das Script ist simpel aufgebaut, damit auch nachvollziehbar ist, was die einzelnen Schritte machen. Auch ist das Script in kleinen Teilen an die Server-Control-Panel-Software „CloudPanel“ angepasst. Die Pflichtangaben sind mit „TODO“ gekennzeichnet. Das Script liegt, immer in der aktuellsten Form, auf GitHub!


foxly-it/Backup-CloudPanel-Nextcloud
Backup with BorgBackup - CloudPanel, Nextcloud. Contribute to foxly-it/Backup-CloudPanel-Nextcloud development by creating an account on GitHub.
github.com


In meinem Script werden die Verzeichnisse /home/cloudpanel/backups 1 & /home/cloudpanel/htdocs 2 durch Borg gesichert. CloudPanel speichert die Datenbankbackups in das Verzeichnis 1 und die Domaindaten in 2.


Mit dem Befehl prune wird ein Repository bereinigt, indem alle Archive gelöscht werden, die keiner der angegebenen Aufbewahrungsoptionen entsprechen.

Außerdem entfernt prune automatisch Prüfpunkt-Archive (unvollständige Archive, die von unterbrochenen Sicherungsläufen zurückgelassen wurden), es sei denn, der Prüfpunkt ist das neueste Archiv (und wird daher noch benötigt). Prüfpunktarchive werden beim Vergleich der Archivanzahl mit den Aufbewahrungsgrenzen (--keep-X) nicht berücksichtigt.


Als Beispiel bedeutet --keep-daily 7, dass an jedem Tag das letzte Backup aufbewahrt wird, bis zu den letzten 7 Tagen mit Backups (Tage ohne Backups zählen nicht mit). Die Regeln werden von Sekunde zu Sekunde angewandt, und Backups, die von früheren Regeln ausgewählt wurden, zählen nicht zu denen der späteren Regeln. Die Uhrzeit, zu der die einzelnen Backups beginnen, wird für das Pruning verwendet. Daten und Zeiten werden in der lokalen Zeitzone interpretiert, und Wochen gehen von Montag bis Sonntag. Die Angabe einer negativen Anzahl von aufzubewahrenden Archiven bedeutet, dass es keine Begrenzung gibt.

Recovery

In Borg können sowohl alle als auch einzelne Dateien wiederhergestellt werden. Damit Daten aus dem Repository wiederhergestellt werden können, muss dies gemountet werden. Für das Mounting ist ein Verzeichnis mit Schreibrechten notwendig!


Bash
borg mount /path/to/backup /path/to/mountingpoint

Das aushängen des Repositorys erfolgt durch umount.

Code
borg umount /path/to/mountingpoint

Über den Autor

Mark ist IT-Spezialist im Fachbereich der IT-Administratoren. Derzeit bereitet er sich auf den IT-Professional vor. Neben Beruf und Familie, erstellt er, als ein teil seines Hobbys, gerne Anleitungen und versucht diese anderen näherzubringen. Systemintegration, Administration sowie Gaming sind Marks Leidenschaft und Hobby.

Foxly Team