Ein Backup, das Sie wiederherstellen können, ist der Unterschied zwischen einem ärgerlichen Nachmittag und dem Verlust eines Projekts. Die grundlegende VPS-Backup-Anleitung erklärt die Idee. Diese hier geht mit restic und BorgBackup weiter: zwei Werkzeuge, die verschlüsselte, deduplizierte Backups auf einen zweiten Server oder in Objektspeicher anlegen.
Warum restic oder borg statt einfacher Kopien
- Deduplizierung. Es werden nur geänderte Daten gespeichert, sodass tägliche Snapshots klein bleiben.
- Verschlüsselung. Die Daten werden verschlüsselt, bevor sie Ihren Server verlassen.
- Snapshots. Sie können den Stand jedes vergangenen Tages wiederherstellen.
- Verifizierung. Beide Werkzeuge können die Integrität des Repositorys prüfen.
Wählen Sie eines. Restic ist einfach und funktioniert mit vielen Speicherarten, darunter SFTP und S3-kompatibler Speicher. Borg ist sehr effizient und arbeitet per SSH mit einem Server, auf dem borg installiert ist.
Wohin Sie Backups senden
Speichern Sie das einzige Backup niemals auf demselben Server. Nutzen Sie einen zweiten VPS an einem anderen Standort, einen S3-kompatiblen Bucket oder eine Storage Box. Ein kleiner VPS mit großer Festplatte ist ein günstiges Backup-Ziel. Siehe VPS-Tarife.
Restic: Einrichtung
sudo apt install -y restic
export RESTIC_REPOSITORY="sftp:backup@backup.example.com:/srv/restic/myserver"
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
Erstellen Sie die Passwortdatei mit einem langen Zufallspasswort und bewahren Sie eine Kopie offline auf. Ohne dieses Passwort lassen sich die Backups nicht wiederherstellen.
restic backup /etc /home /var/www --exclude-caches
restic snapshots
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic check
Borg: Einrichtung
sudo apt install -y borgbackup
export BORG_REPO="ssh://backup@backup.example.com/srv/borg/myserver"
borg init --encryption=repokey-blake2
borg create --stats --compression zstd ::'{hostname}-{now:%Y-%m-%d}' /etc /home /var/www
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg check
Exportieren und speichern Sie den Repository-Schlüssel mit borg key export.
Datenbanken erfordern Sorgfalt
Kopieren Sie keine laufenden Datenbankdateien. Erstellen Sie zuerst einen Dump und sichern Sie diesen:
mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
sudo -u postgres pg_dumpall | gzip > /var/backups/pg.sql.gz
Zeitplan einrichten
Führen Sie das Backup über einen systemd-Timer oder Cron aus. Eine einfache Cron-Zeile:
15 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
Lassen Sie sich bei einem Fehler benachrichtigen, zum Beispiel durch einen Monitoring-Ping am Ende des Skripts.
Eine Wiederherstellung testen
restic restore latest --target /tmp/restore-test --include /etc/nginx
ls /tmp/restore-test
Testen Sie von Zeit zu Zeit eine echte Wiederherstellung auf einem Ersatzrechner. Ein Backup, das Sie nie getestet haben, ist nur eine Hoffnung.