Hier zeige ich euch, wie ihr eure Serverdaten mit Borgbackup auf eine Hetzner Storage Box sichert.
Wer die Hetzner Storage Boxes noch nicht kennt und auf der Suche nach bezahlbaren Backupspeicher ist, sollte sich mal https://www.hetzner.com/de/storage/storage-box anschauen. Ich bekomme kein Geld oder so dafür, dass ich den Link hier poste, es ist nur eine persönliche Empfehlung. Ihr bekommt hier für nicht einmal 4€ 1TB Speicher.
Wenn ihr eure Storage Box habt, meldet ihr euch unter https://robot.hetzner.com/ mit euren Daten an. Klickt an der Seite auf Storage Box und dann auf Eure Storage Box. Hier wählt ihr SSH-Support und externe Erreichbarkeit aus. Siehe Bild:
Die Auswahl braucht ihr, damit ihr Zugriff über SSH habt und auch ein externer Zugriff möglich ist. Wenn ihr das habt, müsst ihr unten auf Neues Passwort erstellen klicken. Speichert es euch gut, da es nicht noch mal angezeigt werden kann.
Als nächstes nehmt ihr einen SFTP eurer Wahl wie z.B. Filezialla, WinSCP oder wie ich, den https://www.bitvise.com/ssh-client-download, aber entscheidet selbst. Loggt euch wie folgt ein:
Server Adresse: uxxxxxx.your-storagebox.de
Benutzername: uxxxxx
Passwort: das_letzte-erstellte-passwort
Port : 23
Die Daten sind natürlich mit euren auszutauschen. Erstellt nun im SFTP einen neuen Ordner z.B. Server1
Nun öffnet ihr wieder https://robot.hetzner.com/ und geht zu eurer Storage Box. Dort klickt ihr auf Sub-Account und dann auf Anlegen, wählt euren eben erstellten Ordner z.B. Server1. Dann wählt ihr wieder SSH-Support und externe Erreichbarkeit aus. Bei Kommentar könnt ihr Server1 oder so schreiben. Wenn ihr alles habt, klickt ihr auf Speichern und es werden euch Benutzername und Passwort angezigt. Speichert euch das gut, das Passwort wird wieder nur dieses eine mal angezeigt. Der Sub-Account hat den Vorteil, falls jemand Zugriff auf euer Backup erlangt, dass er nur auf diesen einen Ordner zugreifen kann.
Nun könnt ihr das Browserfenster schliessen und loggt euch auf eurem Server ein.
Von eurem Server aus öffnet ihr nun eine SSH-Verbindung mit euren Sub-Account:
ssh -p 23 u******-sub1@u******-sub1.your-storagebox.de
Dort erstellt ihr zwei Ordner .ssh und backups:
mkdir .ssh backups
Solltet ihr noch keinen öffentlichen SSH-Key auf eurem System haben, so könnt ihr euch den mit:
ssh-keygen
erstellen und dann auf eure Storage Box mit folgendem Befehl kopieren:
ssh-copy-id -p 23 -s u******sub1@u******sub1.your-storagebox.de
Alternativ, falls der Befehl nicht klappen sollte:
scp -P 23 ~/.ssh/id_rsa.pub u******sub1@u******sub1.yourstoragebox.de:23.ssh/authorized_keys
Wenn alles geklappt hat, solltet ihr euch nun ohne Passwort an eurer Storrage Box über SSH anmelden können.
Weiter geht es mit:
apt install borgbackup -y
Wenn die Installation abgeschlossen ist, muss Borg Backup initialisiert werden:
borg init --encryption repokey-blake2 ssh://u******sub1@u******sub1.your-storagebox.de:23/./backups/REPOSITORY_NAME
Mit Repokey-Verschlüsselung werdet ihr nun nach einer Passphrase gefragt. Dieses wird zukünftig benötigt, um eure Daten zu ver- bzw. zu entschlüsseln. Bewahrt ihn also gut auf.
Solltet Ihr keine Verschlüsselung wünschen gebt einfach „–encryption none“ ein.
Weiter geht es mit dem Backupscript:
nano borgbackup.sh
Im folgenden Script müsst ihr dann nur noch eure Daten und Pfade anpassen:
#!/bin/bash
export BORG_REPO="ssh://u******sub1@u******sub1.your-storagebox.de:23/./backups/REPOSITORY_NAME"
export BORG_PASSPHRASE='BEI_INITALISIERUNG_ANGELEGT'
echo "###### Start Backup ######"
echo "Syncing backup files ..."
borg create -v --stats --progress --compress lz4 --one-file-system \
::'{now:%Y-%m-%d_%H:%M}' \
/etc \
/root \
/var/vmail \
/var/www
echo "Deleting outdated files > 6 months"
borg prune --progress --stats --keep-daily=7 --keep-weekly=4 --keep-monthly=6
echo "###### Ende Backup ######"
Solltet ihr bei borg init „–encryption none“ gewählt haben. könnt ihr das:
export BORG_PASSPHRASE='BEI_INITALISIERUNG_ANGELEGT'
weglassen. Bendet nano mit strg&x.
Das Backup wird mit lz4 komprimiert und mit einen Zeitstempel versehen, damit ihr wisst, von welchem Tag es ist. Die wichtigsten Verzeichnisse sind in diesem Script drin, ihr könnt natürlich weitere Pfade zufügen .z.B. für Docker container usw. Die Backups werden nur für 7 Tage gespeichert wobei das älteste 6 Monate ist.
Nun muss das Script noch ausführbar gemacht werden, gebt dafür folgenden Befehl ein:
chmod +x borgbackup.sh
Nun tragt ihr nur noch einen Cron-Auftrag ein, damit das ganze auch automatisch abläuft:
crontab -e
0 3 * * * /pfad/zur/borgbackup.sh
In diesem Beispiel läuft euer Backup immer um 03:00 Uhr nachts.
Um euer Backup anzuzeigen oder es zurückzuspielen müsst ihr die Hetzner Storrage Box in euer System mounten und das geht so:
Als erstes legt ihr ein Verzeichniss an, in diesem Beispiel nennen wir es /mnt/backup
mkdir /mnt/backup
Als nächstes mountet ihr euer Backup in dieses Verzeichnis:
borg mount ssh://u******sub1@u******sub1.your-storagebox.de:23/./backups/REPOSITORY_NAME /mnt/bakup
Das Verzeichnis ist nun im read-only Modus gemountet und ihr könnt eure Backups einsehen und ggf. zurückspielen. Wenn ihr fertig seid, verlasst ihr das Verzeichnis und trennt die Storage Box wieder von eurem System, gebt dafür einfach folgendes ein:
borg umount /mnt/backup
Auf diese Lösung für die reglemässige Backups bin ich gestoßen, nachdem uns ein Server abgeraucht war und das Backup bei uns zu hause lag und das Einspielen des Backups über unsere DSL-Leitung viel zu lange gedauert hatte.
Ich hoffe ich konnte euch helfen und wünsche euch viel Spaß beim Nachmachen.