Restic: Schnelle und verschlüsselte Backups für Server und Desktops

Ein gutes Backup-System muss drei Eigenschaften vereinen: Zuverlässigkeit, Geschwindigkeit und Datenschutz. Restic erfüllt alle drei – und das als quelloffenes Kommandozeilenwerkzeug, das auf nahezu jedem System läuft. Anders als grafische Backup-Lösungen setzt Restic auf ein durchdachtes Repository-Konzept mit inhaltsbasierter Deduplizierung, AES-256-Verschlüsselung und Unterstützung für dutzende Storage-Backends.

Was ist Restic?

Restic ist ein in Go geschriebenes Backup-Programm, das 2014 von Alexander Neumann entwickelt wurde und heute von einer aktiven Open-Source-Community gepflegt wird. Es ist für Linux, macOS und Windows verfügbar und läuft als einzelne Binary ohne Abhängigkeiten. Der Quellcode ist auf GitHub verfügbar und hat über 26.000 Sterne gesammelt.

Das Grundprinzip ist einfach: Restic sichert Dateien in ein Repository. Jeder Backup-Vorgang erzeugt einen Snapshot. Snapshots sind effizient, weil Restic nur die Differenzen zum vorherigen Backup speichert – durch inhaltsbasierte Deduplizierung auf Chunk-Ebene.

Das Repository-Konzept

Ein Restic-Repository ist ein verschlüsseltes Verzeichnis, das alle Backup-Daten enthält. Es besteht aus mehreren Unterverzeichnissen: data (die eigentlichen Daten-Chunks), snapshots (Metadaten je Sicherung), index (Index der Chunks) und keys (verschlüsselte Repository-Schlüssel). Das Repository-Format ist stabil und rückwärtskompatibel – ein Repository von 2016 funktioniert mit der aktuellen Restic-Version.

Snapshot-basierte Deduplizierung

Restic teilt Dateien in variable Chunks (typischerweise 512 KB bis 8 MB) auf und berechnet für jeden Chunk einen kryptografischen Hash (SHA-256). Existiert ein Chunk mit diesem Hash bereits im Repository, wird er nicht erneut gespeichert. Das bedeutet: Hundert Snapshots einer 10-GB-Datenbank, in der täglich nur 100 MB ändern, belegen im Repository nur wenig mehr als 10 GB – nicht 100-mal 10 GB.

Tipp: Nutzt restic stats, um den tatsächlichen Speicherbedarf eures Repositories zu analysieren. Die Ausgabe zeigt sowohl die Gesamtgröße der Originaldaten als auch den durch Deduplizierung eingesparten Platz.

Verschlüsselung mit AES-256

Alle Daten werden vor dem Schreiben ins Repository mit AES-256-CTR verschlüsselt. Der Verschlüsselungsschlüssel wird aus dem Repository-Passwort mittels scrypt abgeleitet. Das bedeutet: Ohne das Passwort sind die gesicherten Daten für niemanden lesbar – auch nicht für den Betreiber des Storage-Backends. Restic unterstützt mehrere Schlüssel pro Repository, sodass Backup-Scripts und Wiederherstellungszugriffe mit unterschiedlichen Passwörtern arbeiten können.

Unterstützte Backends

Restic unterstützt eine breite Palette von Storage-Backends:

Die wichtigsten Befehle

Der Einstieg in Restic erfordert nur wenige Befehle:

# Repository initialisieren
restic -r /mnt/backup/mein-repo init

# Backup erstellen
restic -r /mnt/backup/mein-repo backup /home/user/dokumente

# Alle Snapshots anzeigen
restic -r /mnt/backup/mein-repo snapshots

# Dateien aus einem Snapshot wiederherstellen
restic -r /mnt/backup/mein-repo restore latest --target /tmp/wiederherstellung

# Repository-Integrität prüfen
restic -r /mnt/backup/mein-repo check

Das Passwort kann über die Umgebungsvariable RESTIC_PASSWORD oder eine Passwortdatei (--password-file) übergeben werden – wichtig für automatisierte Backups in Cron-Jobs.

Forget und Prune: Aufbewahrungsregeln

Mit restic forget werden alte Snapshots nach definierten Regeln entfernt. Der separate Befehl restic prune gibt danach den tatsächlichen Speicherplatz frei (oder beides zusammen mit --prune):

restic -r /mnt/backup/mein-repo forget \
  --keep-daily 7 \
  --keep-weekly 4 \
  --keep-monthly 12 \
  --prune

Dieses Beispiel behält die letzten 7 Tages-Snapshots, 4 Wochen-Snapshots und 12 Monats-Snapshots. Alle anderen werden gelöscht und der Speicher freigegeben.

Achtung: Führt restic check nach einem prune-Vorgang aus, um die Repository-Integrität zu verifizieren. Unterbrochene prune-Vorgänge können zu einem inkonsistenten Zustand führen, der sich aber mit restic repair beheben lässt.

Automatisierung mit Cron

Ein typischer Cron-Job für nächtliche Backups sieht so aus:

0 2 * * * RESTIC_PASSWORD_FILE=/root/.restic-password restic -r s3:s3.amazonaws.com/mein-bucket backup /var/www /etc >> /var/log/restic.log 2>&1

Für eine robustere Automatisierung empfiehlt sich das Wrapper-Skript resticprofile, das Profile in TOML/YAML verwaltet und Benachrichtigungen bei Fehlern auslösen kann.

Vergleich: Restic vs. BorgBackup vs. Duplicati vs. rsync

Tool Deduplizierung Verschlüsselung GUI Backends Plattformen
Restic Ja (chunk-basiert) AES-256 (immer) Nein (CLI) Sehr viele (inkl. Rclone) Linux, macOS, Windows
BorgBackup Ja (chunk-basiert) AES-256 (optional) Borgmatic/Vorta Lokal + SFTP Linux, macOS
Duplicati Ja (block-basiert) AES-256 (optional) Ja (Web-UI) Sehr viele Linux, macOS, Windows
rsync Nein Nein (nur via SSH) Nein (CLI) Lokal + SSH/rsync Linux, macOS

Restic punktet durch seine plattformübergreifende Unterstützung, die breite Backend-Auswahl und die konsequente Verschlüsselung ohne Opt-out. BorgBackup ist für reine Linux/macOS-Umgebungen mit SSH-Backups oft leistungsfähiger. Duplicati bietet eine Web-Oberfläche und ist für Desktop-Nutzer zugänglicher, hatte in der Vergangenheit aber gelegentlich Stabilitätsprobleme.

FAQ

Kann ich ein Restic-Repository auf einem NAS oder Synology betreiben?
Ja. Entweder als lokales Verzeichnis über ein gemountetes SMB/NFS-Laufwerk, über SFTP (wenn SSH auf dem NAS aktiviert ist) oder über S3-kompatible Pakete, die manche NAS-Systeme anbieten.
Wie stelle ich einzelne Dateien aus einem Snapshot wieder her?
Mit restic restore <snapshot-id> --include /pfad/zur/datei --target /ziel oder interaktiv über restic mount /mountpoint, das das Repository als FUSE-Dateisystem einbindet (nur Linux/macOS).
Kann ich das Backup-Passwort nachträglich ändern?
Ja, mit restic key add kann ein neuer Schlüssel hinzugefügt werden, danach wird der alte mit restic key remove entfernt. Alle vorhandenen Snapshots bleiben dabei zugänglich.
Wie groß ist der Overhead durch Verschlüsselung und Metadaten?
Der Overhead ist minimal – typischerweise unter einem Prozent. Restic ist auf Performance optimiert und nutzt parallele Uploads, die bei Verbindungen mit hoher Latenz (z. B. S3) besonders spürbar helfen.

Fazit

Restic ist die zuverlässigste Wahl für automatisierte, verschlüsselte Backups auf Servern und Desktops. Die konsequente Verschlüsselung ohne Kompromisse, die breite Backend-Unterstützung und die einfache Bedienung machen es zur bevorzugten Lösung für Systemadministratoren und technikaffine Nutzer. Wer seine Backups in der Cloud ablegt, kann sicher sein, dass kein Storage-Anbieter die Daten einsehen kann – ein entscheidender Vorteil gegenüber vielen anderen Lösungen.