Help Center /Anleitungen /Linux-Server sichern: automatische Backups einrichten

Linux-Server sichern: automatische Backups einrichten

Server sichern: Dateien und Datenbanken per Skript, rsync und Cron automatisch sichern, nach der 3-2-1-Regel und mit Wiederherstellungstest.

Updated 23.10.2026

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.

Drei Kopien, zwei Speicherorte, eine Kopie außer Haus

Was sichern?

  • Daten deiner Anwendungen, etwa /var/www und /opt
  • Konfiguration in /etc
  • Datenbanken als Dump, nicht als laufende Dateien

1. Backup-Skript

/opt/skripte/backup.sh:

#!/bin/bash
set -euo pipefail
ZIEL=/backup/$(date +%F)
mkdir -p "$ZIEL"
mariadb-dump --all-databases --single-transaction | gzip > "$ZIEL/datenbanken.sql.gz"
tar czf "$ZIEL/dateien.tar.gz" /etc /var/www /opt
find /backup -mindepth 1 -maxdepth 1 -type d -mtime +14 -exec rm -rf {} +
chmod +x /opt/skripte/backup.sh

Das Skript bricht beim ersten Fehler ab. pipefail sorgt dafür, dass das auch für einen fehlgeschlagenen Datenbank-Dump gilt, statt still eine leere Datei zu sichern. Die letzte Zeile löscht Sicherungen, die älter als 14 Tage sind.

Passe die tar-Zeile an deinen Server an: Fehlt einer der Ordner, bricht tar ab. Ohne Datenbank lässt du die Zeile mit mariadb-dump weg. Teste das Skript einmal von Hand, bevor es automatisch läuft.

2. Auf einen zweiten Ort kopieren

Mit rsync über SSH auf ein anderes System, zum Beispiel ein NAS oder einen zweiten Server. Häng diese Zeile ans Ende des Skripts:

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. Verbinde dich einmal von Hand mit dem Zielserver, damit dessen Fingerprint gespeichert ist. Sonst bleibt der nächtliche Lauf an der Rückfrage hängen.

Noch sicherer ist es, wenn der zweite Server die Sicherungen selbst abholt. Dann kann ein Angreifer, der deinen Server übernommen hat, die Kopien dort nicht löschen.

3. Automatisch jede Nacht

0 3 * * * /opt/skripte/backup.sh >> /var/log/backup.log 2>&1

Im Log siehst du, ob ein Lauf fehlgeschlagen ist. Siehe Cronjobs einrichten.

4. Wiederherstellen testen

Ein Backup, das nie zurückgespielt wurde, ist ein Versprechen. Spiel es einmal auf einem Testserver ein. Entpacke die Dateien dabei in einen eigenen Ordner und kopiere von dort nur, was du brauchst:

mkdir -p /root/restore
tar xzf dateien.tar.gz -C /root/restore
gunzip < datenbanken.sql.gz | mariadb

Achtung: Der Dump überschreibt gleichnamige Datenbanken. Entpackst du das Archiv direkt nach /, überschreibt es auch Netzwerk- und SSH-Einstellungen in /etc. Auf einem anderen Server sperrst du dich damit leicht aus.

Sicherungen und Snapshots im Panel

Für KVM-Server bei XionHosting gibt es im Panel zusätzlich Sicherungen, eine vollständige Kopie auf einem getrennten Backup-Server, und Snapshots, Momentaufnahmen auf demselben Speicher. Beide setzen beim Zurückspielen den ganzen Server auf diesen Stand. Für einzelne Dateien und Datenbanken und für eine Kopie außer Haus brauchst du weiterhin eigene Backups wie oben. Auch der RAID-Verbund der Server ist Redundanz und kein Backup.

Did this help?