Restic Backups: verschlüsselt, inkrementell und cloud-fähig

Eine belastbare Backup-Strategie braucht drei Dinge: Verschlüsselung, Automatisierung und echte Restore-Sicherheit. Restic liefert genau das mit einer schlanken CLI und breiter Backend-Unterstützung.

Diese Anleitung zeigt einen praxistauglichen Workflow für Server und kleinere Infrastruktur-Teams.

1) Restic installieren

Auf Ubuntu/Debian:

sudo apt update
sudo apt install restic -y
restic version

2) Repository-Zugang konfigurieren

Für nicht-interaktive Jobs Umgebungsvariablen nutzen:

export RESTIC_REPOSITORY=s3:https://s3.us-east-1.amazonaws.com/my-restic-bucket
export RESTIC_PASSWORD='use-a-strong-passphrase'
export AWS_ACCESS_KEY_ID='...'
export AWS_SECRET_ACCESS_KEY='...'

Für lokales Repository:

export RESTIC_REPOSITORY=/backup/restic-repo
export RESTIC_PASSWORD='use-a-strong-passphrase'

Repository initialisieren:

restic init

3) Ersten Snapshot erstellen

restic backup /etc /var/www /home

Snapshots auflisten:

restic snapshots

4) Retention-Policy anwenden

Ausgewogene Beispiel-Policy:

restic forget --prune \
  --keep-last 10 \
  --keep-daily 14 \
  --keep-weekly 8 \
  --keep-monthly 12

So kontrollierst du Datenwachstum und behältst sinnvolle Wiederherstellungspunkte.

5) Integrität prüfen

Schnellcheck:

restic check --read-data-subset=5%

Vollständiger Check regelmäßig:

restic check

6) Restore-Test (Pflicht)

Gezielten Pfad aus dem neuesten Snapshot wiederherstellen:

restic restore latest --target /tmp/restore-test --include /etc/nginx/nginx.conf

Anschließend Dateiinhalt, Rechte und Wiederherstellungszeit validieren.

7) Mit systemd automatisieren

Service /etc/systemd/system/restic-backup.service:

[Unit]
Description=Restic Backup Job

[Service]
Type=oneshot
EnvironmentFile=/etc/restic/env
ExecStart=/usr/bin/restic backup /etc /var/www /home
ExecStartPost=/usr/bin/restic forget --prune --keep-last 10 --keep-daily 14 --keep-weekly 8 --keep-monthly 12

Timer /etc/systemd/system/restic-backup.timer:

[Unit]
Description=Run Restic backup daily

[Timer]
OnCalendar=*-*-* 02:15:00
Persistent=true

[Install]
WantedBy=timers.target

Timer aktivieren:

sudo systemctl daemon-reload
sudo systemctl enable --now restic-backup.timer
sudo systemctl list-timers | grep restic

Praktische Best Practices

  • Repository-Passwort in Secret-Manager speichern
  • Backup-Credentials von App-Credentials trennen
  • Unveränderbare/offline Kopie für Ransomware-Resilienz halten
  • Restore-Runbook nach Prioritäten dokumentieren

Fazit

Restic bietet starke Data-Protection-Grundlagen bei geringer Komplexität. Wenn Snapshots, Retention, Checks und Restore-Tests automatisiert sind, entsteht eine verlässliche Backup-Basis.

Entscheidend ist operative Disziplin: Backups müssen beobachtbar, prüfbar und unter Druck wiederherstellbar sein.