Auf einem VPS liegen die Datensicherungen in Ihrer Verantwortung: Dies ist die Kehrseite des Root-Zugriffs. BorgBackup ist hierfür das Standardwerkzeug unter Linux. Es verschlüsselt die Daten, bevor sie den Server verlassen, speichert identische Blöcke nur einmal, wodurch die täglichen Sicherungen sehr kompakt bleiben, und ermöglicht die Wiederherstellung einer einzelnen Datei innerhalb weniger Sekunden.
1. Die goldene Regel: Eine Sicherung außerhalb des Servers
Ein Backup, das auf demselben VPS wie die Daten gespeichert ist, schützt weder vor einem versehentlichen Löschen auf dem Server noch vor einem Hackerangriff oder einer Ransomware, die die gesamte Festplatte verschlüsseln würde. Befolgen Sie die 3-2-1-Regel: drei Kopien der Daten auf zwei verschiedenen Speichermedien, davon eine außerhalb des Standorts.
Konkret benötigen Sie einen über SSH zugänglichen Speicherort, der sich nicht auf dem zu sichernden Server befindet: einen zweiten VPS als Speicher, einen Server bei Ihnen zu Hause oder einen Borg-kompatiblen Speicherdienst. In dieser Anleitung wird dieser Rechner als backup.exemple.fr.
2. Borg installieren
Borg muss auf beiden Rechnern installiert werden, dem VPS und dem Speicherserver:
apt update && apt install -y borgbackup
Erstellen Sie auf dem VPS einen SSH-Schlüssel, der ausschließlich für Sicherungen bestimmt ist, und verzichten Sie dabei auf ein Passwort, da dieser für einen automatisierten Vorgang verwendet wird:
ssh-keygen -t ed25519 -f /root/.ssh/borg -N "" -C "borg@$(hostname)"
cat /root/.ssh/borg.pub
Erstellen Sie auf dem Speicherserver einen Benutzer borg und fügen Sie den öffentlichen Schlüssel in die entsprechende Datei ein ~/.ssh/authorized_keys, wobei diese auf Borg-Befehle beschränkt wird:
command="borg serve --restrict-to-path /home/borg/repos",restrict ssh-ed25519 AAAA... borg@monvps
Diese Einschränkung begrenzt den Schaden, falls der VPS kompromittiert werden sollte: Mit dem Schlüssel lässt sich kein Terminal auf dem Speicherserver öffnen.
3. Das Remote-Repository erstellen
Wählen Sie eine lange Passphrase und speichern Sie diese in einer Datei, auf die nur root Zugriff hat:
openssl rand -base64 32 > /root/.borg-pass
chmod 600 /root/.borg-pass
export BORG_RSH="ssh -i /root/.ssh/borg"
export BORG_PASSCOMMAND="cat /root/.borg-pass"
borg init --encryption=repokey-blake2 ssh://[email protected]/home/borg/repos/monvps
Exportieren Sie den Repository-Schlüssel umgehend und bewahren Sie ihn zusammen mit der Passphrase an einem anderen Ort als auf dem VPS auf – beispielsweise in einem Passwortmanager.
borg key export ssh://[email protected]/home/borg/repos/monvps /root/borg-key.txt
cat /root/borg-key.txt # à copier en lieu sûr, puis supprimer le fichier
4. Das Sicherungsskript
Dateien einer Datenbank, die gerade verwendet wird, lassen sich nicht zuverlässig kopieren. Daher werden die Datenbanken zunächst in eine Datei exportiert, und Borg sichert diesen Export anschließend zusammen mit dem Rest. Erstellen Sie /root/backup.sh :
#!/bin/bash
set -euo pipefail
export BORG_REPO="ssh://[email protected]/home/borg/repos/monvps"
export BORG_RSH="ssh -i /root/.ssh/borg"
export BORG_PASSCOMMAND="cat /root/.borg-pass"
# 1. export cohérent des bases de données
mkdir -p /var/backups/sql
mariadb-dump --all-databases --single-transaction --routines --events \
| gzip > /var/backups/sql/all-databases.sql.gz
# 2. sauvegarde
borg create --stats --compression zstd,3 --exclude-caches \
--exclude '/var/www/*/wp-content/cache' \
::'{hostname}-{now:%Y-%m-%d_%H%M}' \
/etc /var/www /home /root /var/backups/sql
# 3. rotation : 7 quotidiennes, 4 hebdomadaires, 6 mensuelles
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg compact
chmod 700 /root/backup.sh
/root/backup.sh
Beim ersten Durchlauf werden alle Daten übertragen; bei den folgenden Durchläufen werden nur die geänderten Blöcke übertragen, was in der Regel einige Sekunden bis einige Minuten dauert. Passen Sie die Liste der Ordner an Ihre Bedürfnisse an: Fügen Sie beispielsweise den Ordner Ihrer Spielserver oder Ihrer Docker-Volumes hinzu.
mariadb-dump auf dem Host: Starten Sie den Export im Container mit docker exec, und speichern Sie anschließend die erzeugte Datei. Siehe Docker und Docker Compose.5. Automatisieren
Eine Zeile in /etc/cron.d/ startet die Datensicherung jede Nacht um 3:30 Uhr und protokolliert dies in einem Protokoll:
echo '30 3 * * * root /root/backup.sh >> /var/log/borg.log 2>&1' > /etc/cron.d/borg
Das Skript enthält alle erforderlichen Variablen, sodass es ohne zusätzliche Konfiguration über Cron ausgeführt werden kann. Dies ist der häufigste Fehler bei Borg: Ein Befehl, der manuell funktioniert, schlägt jedoch nachts fehl, weil die Passphrase nicht definiert ist.
6. Wiederherstellen
Exportieren Sie zunächst die drei Variablen des Skripts in Ihr Terminal und listen Sie anschließend die verfügbaren Archive auf:
borg list
Eine Datei oder einen Ordner wiederherstellen : borg extract stellt die Daten im aktuellen Ordner wieder her und erstellt dabei die Ordnerstruktur neu. Wechseln Sie in einen temporären Ordner, um zu vermeiden, dass Sie versehentlich Dateien überschreiben:
mkdir -p /tmp/restore && cd /tmp/restore
borg extract ::monvps-2026-09-18_0330 var/www/monsite.fr/wp-config.php
Ein Archiv durchsuchen wie ein Ordner, um eine Datei zu finden, ohne deren genauen Pfad zu kennen:
apt install -y python3-pyfuse3
mkdir -p /mnt/borg && borg mount ::monvps-2026-09-18_0330 /mnt/borg
ls /mnt/borg
borg umount /mnt/borg
Datenbanken wiederherstellen aus dem Export:
borg extract ::monvps-2026-09-18_0330 var/backups/sql/all-databases.sql.gz
gunzip -c var/backups/sql/all-databases.sql.gz | mariadb
7. Langfristige Überwachung
- Lesen Sie die Zeitung von Zeit zu Zeit:
tail -n 30 /var/log/borg.log. Ein Backup, das wochenlang unbemerkt fehlschlägt, ist das häufigste Szenario. - Überprüfen Sie die Integrität einmal monatlich von der Einlage mit
borg check. - Testen Sie eine vollständige Wiederherstellung mindestens einmal pro Quartal, idealerweise auf einem Test-VPS. Ein Backup, das nie wiederhergestellt wird, ist nur eine hypothetische Annahme.
Um im Falle eines Fehlers eine Benachrichtigung zu erhalten, kombinieren Sie dieses Skript mit der in Ihren VPS überwachen. Und falls Sie eine WordPress-Website hosten, lesen Sie auch WordPress auf einem VPS installieren.
Häufig gestellte Fragen
Wo sollen die Backups eines VPS gespeichert werden?
Immer an einem anderen Ort als auf dem VPS selbst: auf einem zweiten Server, idealerweise in einem anderen Rechenzentrum, auf einem Heimserver oder einem über SSH zugänglichen Speicherdienst. Eine Sicherung auf derselben Festplatte schützt weder vor einer Löschung des Servers noch vor einem Hackerangriff.
Wie viel Speicherplatz beanspruchen die Borg-Sicherungen?
Dank der Deduplizierung enthält jedes neue Archiv nur die Blöcke, die seit dem vorherigen Archiv geändert wurden. Bei diesem Rotationszyklus – also 17 Archiven – übersteigt der Gesamtspeicherplatz bei einer Website, deren Dateien sich nur geringfügig ändern, oft kaum die Größe einer einzigen komprimierten Vollsicherung.
Kann man eine einzelne Datei wiederherstellen, ohne alles wiederherzustellen?
Ja. Mit „borg extract“ können Sie einen bestimmten Pfad angeben, und mit „borg mount“ können Sie ein Archiv wie einen gewöhnlichen Ordner durchsuchen, um nur das zu kopieren, was Sie benötigen.
Borg oder rsync – wofür soll man sich entscheiden?
rsync kopiert einen Zustand zu einem bestimmten Zeitpunkt: Ist eine Datei beschädigt oder durch Ransomware verschlüsselt, wird sie bei der nächsten Kopie überschrieben. Borg speichert einen Verlauf verschlüsselter und deduplizierter Versionen, sodass Sie zu einem bestimmten Zeitpunkt zurückkehren können. Für Backups ist Borg die beste Wahl.










