Backup auf Hetzner Storagebox mit Borg

Diese Seite ist (wie fast alles was ich betreibe) auf einem Hetzner Server gehostet.
Neben dem im Vergleich zur Konkurrenz relativ günstigen Preis ist ein weiterer Vorteil, dass man immerhin 100GB Speicherplatz auf einer Hetzner Storagebox erhält.
Der Zugriff ist mit verschiednen Protokollen möglich. Ich bevorzuge das ssh-Protokoll mit dem Tool Borg. (https://borgbackup.readthedocs.io/en/stable/).

Die Einrichtung ist relativ einfach. Es kann sowohl einen ssh-key als auch ein Passwort zur Authentifizierung genutzt werden. Auch wenn ersteres natürlich deutlich sicherer wäre, habe ich mich doch für die zweite Möglichkeit entschieden, da die Storagebox zum Einen von außen eh nicht erreichbar ist und das Secret zum Anderen sowieso auf dem Server gespeichert sein muss.

Zur Einrichtung speichere ich zunächst das Borg Repository in einer Umgebungsvariable, das erleichtert die zukünftige Arbeit:

export BORG="username@u000000.your-storagebox.de:~/repo_name"

Anschließend muss Borg mitgeteilt werden, wie es eine Verbindung zur Storagebox aufbauen kann. Das geschieht in der Umgebungsvariable BORG_RSH. Statt dem Standardport 22 benutzt die Hetzner Storagebox für SSH-Verbindungen Port 23:

export BORG_RSH="sshpass -p passwort ssh -o StrictHostKeyChecking=no -p 23"

Anschließend kann das Repository initialisiert werden:

borg init -e repokey-blake2 $BORG
borg key export $BORG /dev/stdout

Der zweite Befehl gibt den Verschlüsselungskey für das Repository auf. Dieser muss unbedingt gespeichert werden (z.B. in KeePass), da ansonsten bei Datenverlust kein Zugriff mehr möglich ist.

Das Backup kann anschließend erstellt werden:

ARCHIVE_NAME="$(date)"
FILES="/opt /home"
borg create --progress $BORG::"$ARCHIVE_NAME" $FILES

Es empfielt sich zu überprüfen, ob das Backup erfolgreich war. Der Folgende Befehl zeigt eine Liste aller durchgeführten Backups an:

borg list $BORG
Show Comments