Zuhause / Guides / Restic Backups

Verschlüsselte Off-Site-Backups mit Restic

Tägliche Schnappschüsse von Ihrem Gastgeber sind eine Versicherung gegen Fehler, nicht gegen den Verlust des gesamten Gastgebers. Echte Backups leben woanders und sind verschlüsselt. restic macht beides, und es ist eine binär.

1. Restic installieren

apt update && apt install -y restic

restic schreibt ein einziges verschlüsseltes Repository. Es kann auf S3, Backblaze B2, einem anderen Server über SFTP oder sogar einem zweiten Buran VPS leben.

2. Speicher erstellen

export RESTIC_REPOSITORY="sftp:backup@other-host:/srv/backups/myserver"
export RESTIC_PASSWORD="a-long-unique-passphrase"
restic init

Behalten Sie die Passphrase in einem Passwort-Manager. Wenn Sie es verlieren, sind die Daten weg - das ist der Punkt der Verschlüsselung. Für automatische Jobs speichern Sie es in einer Umgebungsdatei, die nur von root lesbar ist:

cat > /etc/restic.env <<'EOF'
RESTIC_REPOSITORY=sftp:backup@other-host:/srv/backups/myserver
RESTIC_PASSWORD=change-me
EOF
chmod 600 /etc/restic.env

3. Erstes Backup

set -a; . /etc/restic.env; set +a
restic backup /etc /root /home /var/www --exclude-caches
restic snapshots

Datenbanken benötigen einen Dump, keine Dateikopie: Ein laufendes PostgreSQL-Datenverzeichnis ist inkonsistent. Dump zuerst, dann sichern Sie den Dump-Ordner. Sehen Sie unsere PostgreSQL Guide für den Dump Command.

4. Führen Sie es nächtlich mit einem systemd Timer

cat > /etc/systemd/system/restic-backup.service <<'EOF'
[Unit]
Description=restic backup
[Service]
Type=oneshot
EnvironmentFile=/etc/restic.env
ExecStart=/usr/bin/restic backup /etc /root /home /var/www --exclude-caches
ExecStartPost=/usr/bin/restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
EOF
cat > /etc/systemd/system/restic-backup.timer <<'EOF'
[Unit]
Description=Nightly restic backup
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target
EOF
systemctl daemon-reload
systemctl enable --now restic-backup.timer

5. Testen Sie die Wiederherstellung - heute, nicht im Notfall

set -a; . /etc/restic.env; set +a
restic snapshots
restic restore latest --target /tmp/restore-test
ls -la /tmp/restore-test/etc

Ein Backup, das Sie nie wiederhergestellt haben, ist eine Hoffnung, kein Backup. Wiederholen Sie den Test alle paar Monate - und überprüfen Sie, ob das Repository tatsächlich wächst.

Schnelle Antworten

Wo sollte das Backup-Repository leben?

Überall außer dem Computer, den Sie sichern: Objektspeicher wie Backblaze B2, ein anderer Server über SFTP oder ein zweiter VPS. Backups auf demselben Host überleben einen verlorenen Host nicht.

Wie viel Platz brauche ich?

restic dedupliziert und komprimiert, so dass ein typischer server selten mehr als ein paar gb pro monat von Änderungen wächst. 50-100 GB Remote-Speicher ist genug für einen kleinen Server.

Brauche ich noch Host Snapshots?

Ja. Buran-Schnappschüsse stellen eine ganze Maschine mit einem Klick wieder her und sind perfekt für "Ich habe es vor fünf Minuten gebrochen". Off-Site Restic Backups decken Hardwareverluste und Bedienfehler ab, die das Snapshot-Fenster überdauern.

Brauchen Sie eine zweite Maschine, um Backups zu halten? Eine 3 € NAT Box funktioniert gut.

Related