Wir sind Borg!

Da sich in den letzten Tagen schon einiges an Content angesammelt hat und die Storagebox noch fast leer vor sich hin dümpelt, muss ein Backup-Mechanismus her!

Auf der Suche nach Backup-Tools stolpere ich über BorgBackup – oder kurz Borg. Schon alleine des Namens wegen bekommt es eine Chance!

Borg kann ein paar ganz nette Sachen: Deduplizierung, Komprimierung, Verschlüsselung. Außerdem ist es quelloffen, sehr gut dokumentiert, komplett auf der Kommandozeile bedienbar, und – last but not least – wird von der Storagebox von Hetzner direkt unterstützt.

Den Borg-Client werde ich NICHT in einem Docker-Container ausführen, weil er möglichst unabhängig von der restlichen Infrastruktur sein soll. Ein klassischer Cron-Job passt perfekt.

Zuerst lege ich mit borg init ein Borg-Repository auf der Storagebox an, in die anschließend per Cron-Job alle fünf Minuten die wichtigsten System-Verzeichnisse und die Docker-Volumes gesichert werden.

Als Name für die Backup-Archive verwende ich backup-{uuid4}. Der Platzhalter wird von Borg durch eine UUID ersetzt. Der Zeitpunkt des Backups ist in der Ausgabe von borg list enthalten, muss also nicht nochmal in den Archiv-Namen rein.

Im Anschluss an die Sicherung wird noch mit borg prune aufgeräumt, damit ich nicht in einem Jahr mit hunderttausend Archiven hantieren muss.

Mal sehen, wann ich das erste Backup brauche…