Ein VPS kann ausfallen, versehentlich gelöscht oder durch ein fehlerhaftes Update beschädigt werden. Der einzige Schutz ist ein getestetes Backup. Diese Anleitung richtet einfache, automatisierte, verschlüsselte Backups mit kostenlosen Tools ein.
Die 3-2-1-Regel
Halten Sie 3 Kopien Ihrer Daten auf 2 verschiedenen Arten von Speicher, mit 1 Kopie an einem ganz anderen Ort. Bei einem VPS bedeutet das meist die Live-Daten, einen lokalen Snapshot und eine externe Kopie bei einem anderen Anbieter oder in einem anderen Land.
Was gesichert werden sollte
- Website-Dateien und Uploads (
/var/www). - Datenbanken, zuerst in eine Datei exportiert (kopieren Sie nie laufende Datenbankdateien).
- Konfiguration:
/etc/nginx, Änderungen in/etc, Docker-Compose-Dateien und Volumes. - Cron-Jobs und alle eigenen Skripte.
Das Betriebssystem können Sie in Minuten neu installieren. Was Sie nicht neu installieren können, sind Ihre Daten und Ihre Einstellungen.
restic für verschlüsselte, deduplizierte Backups nutzen
sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
Erstellen Sie die Passwortdatei mit einer langen Zufallszeichenfolge und bewahren Sie eine Kopie an einem sicheren Ort auf. Wenn Sie dieses Passwort verlieren, lassen sich die Backups nicht mehr öffnen. restic unterstützt auch S3-kompatiblen Speicher, sodass Sie auf jeden Objektspeicher sichern können.
Ein Backup-Skript
#!/bin/bash
set -e
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
restic backup /var/www /etc /var/backups/db.sql.gz
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Speichern Sie es als /usr/local/bin/backup.sh, machen Sie es ausführbar und planen Sie es ein:
sudo chmod +x /usr/local/bin/backup.sh
echo "30 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | sudo tee /etc/cron.d/backup
Eine Wiederherstellung testen
restic snapshots
restic restore latest --target /tmp/restore-test --include /etc/nginx
Ein Backup, das Sie nie wiederhergestellt haben, ist nur eine Hoffnung. Testen Sie einmal pro Quartal und immer nach jeder Änderung.
Snapshots helfen, reichen aber nicht aus
Snapshots des Anbieters sind schnell und praktisch vor riskanten Änderungen, liegen aber beim selben Anbieter und Konto. Betrachten Sie sie als Komfortfunktion und halten Sie eine unabhängige externe Kopie vor.