Automatische Backups für deinen Server einrichten
Dateien und Datenbanken mit rsync und Cron sichern, nach der 3-2-1-Regel.
Ein Backup auf demselben Server schützt vor versehentlichem Löschen, aber nicht vor Hardwaredefekt, Hack oder Kündigung. Halte dich an die 3-2-1-Regel.
Was sichern?
- Daten deiner Anwendungen, etwa
/var/wwwund/opt - Konfiguration in
/etc - Datenbanken als Dump, nicht als laufende Dateien
1. Backup-Skript
/opt/skripte/backup.sh:
#!/bin/bash
set -e
ZIEL=/backup/$(date +%F)
mkdir -p "$ZIEL"
mariadb-dump --all-databases --single-transaction | gzip > "$ZIEL/datenbanken.sql.gz"
tar czf "$ZIEL/dateien.tar.gz" /var/www /etc /opt --exclude=/opt/skripte
find /backup -maxdepth 1 -type d -mtime +14 -exec rm -rf {} +
chmod +x /opt/skripte/backup.sh
2. Auf einen zweiten Ort kopieren
Mit rsync über SSH auf ein anderes System, zum Beispiel ein NAS oder einen zweiten Server:
rsync -az --delete /backup/ backup@ZWEITER-SERVER:/backups/meinserver/
Dafür einen eigenen SSH-Key ohne Passphrase anlegen, der nur für Backups genutzt wird.
3. Automatisch jede Nacht
0 3 * * * /opt/skripte/backup.sh && rsync -az --delete /backup/ backup@ZWEITER-SERVER:/backups/meinserver/
Siehe Cronjobs einrichten.
4. Wiederherstellen testen
Ein Backup, das nie zurückgespielt wurde, ist ein Versprechen. Spiel es einmal auf einem Testserver ein:
gunzip < datenbanken.sql.gz | mariadb
tar xzf dateien.tar.gz -C /
Hat dir das geholfen?