Was ist restic?
restic ist ein schnelles, effizientes und sicheres Backup-Programm. Es zerlegt Dateien in inhaltsdefinierte Blöcke und speichert jeden Block genau einmal — ein zweites Backup eines kaum veränderten Verzeichnisses überträgt deshalb fast nichts. Alles wird auf deiner Maschine verschlüsselt und authentifiziert, mit AES-256 und Poly1305-AES, bevor ein einziges Byte sie verlässt; das Repository darf also an einem Ort liegen, dem du nicht vollständig vertraust. Snapshots sind append-only und lassen sich auflisten, vergleichen, als Dateisystem einhängen und Datei für Datei zurückspielen — je ein Befehl, ohne eine einzige Konfigurationsdatei.
prune und check, geringerer Speicherbedarf bei großen Repositories und neue Backends. Die Version in Debian stable liegt Jahre zurück: ein von einem aktuellen restic geschriebenes Repository kann für ein altes unlesbar sein, die wiederherstellende Maschine muss also mindestens so neu sein wie die sichernde. Überall das aktuelle Release zu fahren ist der einfachste Weg, das sicherzustellen.
⚡ Wichtige Funktionen von restic
🧩 Deduplizierung, die wirklich greift
Inhaltsdefiniertes Chunking sorgt dafür, dass eine unveränderte Datei, eine verschobene Datei und eine Datei auf zehn Rechnern nur einmal gespeichert werden. Tägliche Snapshots desselben Baums kosten die Differenz, nicht den Baum.
🔐 Verschlüsselt, bevor es geht
AES-256 für die Inhalte, Poly1305-AES für die Authentifizierung, beides auf dem Client. Im Repository liegt weder Klartext noch etwas Unauthentifiziertes: feindlicher Speicher kann dein Backup verlieren, aber weder lesen noch fälschen.
☁️ Backends für überall
Ein lokales Verzeichnis, SFTP, der REST-Server, Amazon S3 und alles S3-Kompatible, OpenStack Swift, Backblaze B2, Azure Blob Storage, Google Cloud Storage — und alles Übrige über rclone.
📸 Snapshots zum Durchsehen
restic snapshots listet sie auf, restic diff zeigt den Unterschied zwischen zweien, und restic mount legt jeden Snapshot unter ein Verzeichnis — eine einzelne Datei holst du dann mit cp zurück.
🧹 Aufbewahrung und Aufräumen
forget --keep-daily/--keep-weekly/--keep-monthly schreibt eine Aufbewahrungsregel direkt hin, und --prune gibt den Platz im Repository anschließend wieder frei.
🔎 Überprüfbare Repositories
restic check prüft die Struktur des Repositories, --read-data liest und verifiziert jede Pack-Datei erneut. „Das Backup existiert“ und „das Backup ist intakt“ sind damit zwei Fragen, die du tatsächlich beantworten kannst.
apt upgrade hält dich auf der neuesten Version.
📦 Installation aus deb.griffo.io
Schritt 1: Repository hinzufügen
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update🆓 Es gibt einen für immer kostenlosen Spiegel. deb-free.griffo.io liefert Pakete für immer kostenlos — ohne Konto, ohne Abo, höchstens 2 Monate hinter Upstream, Sicherheitsfixes sofort. Derzeit enthält er cliamp, Ghostty, lazydocker, Oh My Posh und Zed; restic ist nicht dabei, deshalb führt heute nur das Repository oben dorthin — auf Anfrage kann es aufgenommen werden.
Schritt 2: restic installieren
# Neuestes restic installieren
sudo apt install restic
# Installation prüfen
restic version# Neuestes restic installieren
apt install restic
# Installation prüfen
restic versionSchritt 3: Das erste Repository anlegen
# Ein Repository ist ein Verzeichnis, lokal oder entfernt. Wähle ein Passwort
# und bewahre es auf: ohne das Passwort sind die Daten weg, bewusst ohne Notausgang.
restic init --repo /srv/backup/restic
# Etwas sichern
restic -r /srv/backup/restic backup ~/Documents
# Nachsehen, was da ist
restic -r /srv/backup/restic snapshots
# Die Handbuchseiten und die Vervollständigungen für bash, fish und zsh sind im Paket
man restic🎯 Grundlegende Verwendungsbeispiele
Sichern:
# Das Passwort in einer Datei halten, statt es in jeden Befehl zu tippen
echo 'eine lange Passphrase' | sudo tee /etc/restic-password > /dev/null
sudo chmod 600 /etc/restic-password
export RESTIC_REPOSITORY=/srv/backup/restic
export RESTIC_PASSWORD_FILE=/etc/restic-password
# Mehrere Pfade sichern und auslassen, was eine Wiederherstellung nicht will
restic backup ~/Documents ~/Pictures --exclude '**/node_modules' --exclude '*.iso'
# Oder aus einer Datei steuern, ein Muster pro Zeile
restic backup ~ --exclude-file ~/.config/restic-excludes --exclude-caches
# Einen Snapshot markieren, um ihn später wiederzufinden
restic backup /etc --tag config --tag "$(hostname)"# Das Passwort in einer Datei halten, statt es in jeden Befehl zu tippen
echo 'eine lange Passphrase' | tee /etc/restic-password > /dev/null
chmod 600 /etc/restic-password
export RESTIC_REPOSITORY=/srv/backup/restic
export RESTIC_PASSWORD_FILE=/etc/restic-password
# Mehrere Pfade sichern und auslassen, was eine Wiederherstellung nicht will
restic backup ~/Documents ~/Pictures --exclude '**/node_modules' --exclude '*.iso'
# Oder aus einer Datei steuern, ein Muster pro Zeile
restic backup ~ --exclude-file ~/.config/restic-excludes --exclude-caches
# Einen Snapshot markieren, um ihn später wiederzufinden
restic backup /etc --tag config --tag "$(hostname)"Wiederherstellen und durchsehen:
# Was liegt im Repository
restic snapshots
restic ls latest /etc
# Alles aus dem neuesten Snapshot zurückspielen
restic restore latest --target /tmp/restore
# Oder nur die Pfade, die wirklich fehlen
restic restore latest --target / --include /etc/nginx
# Die ganze Historie einhängen und eine Datei von Hand herauskopieren (FUSE nötig)
sudo apt install fuse3
mkdir -p ~/mnt/backup
restic mount ~/mnt/backup
# Was sich zwischen zwei Snapshots geändert hat
restic diff 1a2b3c4d 5e6f7a8b# Was liegt im Repository
restic snapshots
restic ls latest /etc
# Alles aus dem neuesten Snapshot zurückspielen
restic restore latest --target /tmp/restore
# Oder nur die Pfade, die wirklich fehlen
restic restore latest --target / --include /etc/nginx
# Die ganze Historie einhängen und eine Datei von Hand herauskopieren (FUSE nötig)
apt install fuse3
mkdir -p ~/mnt/backup
restic mount ~/mnt/backup
# Was sich zwischen zwei Snapshots geändert hat
restic diff 1a2b3c4d 5e6f7a8bEntfernte Repositories:
# SFTP: jede Maschine, auf die du dich ohnehin per ssh verbindest
restic -r sftp:backup@nas:/srv/restic init
# S3 und alles S3-Kompatible, auch selbstgehostetes Garage oder MinIO
export AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...
restic -r s3:https://s3.example.com/backups init
# Backblaze B2
export B2_ACCOUNT_ID=... B2_ACCOUNT_KEY=...
restic -r b2:my-bucket:backups init
# Alles, was rclone erreicht, also der ganze Rest
restic -r rclone:mydrive:backups initAufbewahrung, Aufräumen und Prüfen:
# Eine Aufbewahrungsregel für das ganze Repository
restic forget --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --prune
# Erst der Trockenlauf, denn forget löscht Snapshots
restic forget --keep-daily 7 --dry-run
# Strukturprüfung, billig, ruhig oft laufen lassen
restic check
# Eine Stichprobe der echten Daten neu lesen und prüfen, teuer, monatlich
restic check --read-data-subset 10%
# Wohin der Platz geht
restic stats --mode raw-data🔧 Tool-Integrationen
restic ist darauf ausgelegt, von dem gesteuert zu werden, was ohnehin läuft:
- systemd: ein Service plus ein Timer ist der übliche unbeaufsichtigte Aufbau;
RESTIC_REPOSITORYundRESTIC_PASSWORD_FILEgehören in die Unit, nicht ins Shell-Profil - rclone: das
rclone:-Backend gibt restic jeden Anbieter, den rclone unterstützt, ohne dass restic einen davon selbst sprechen müsste - FUSE:
fuse3(oderfuse) macht ausrestic mountein durchsuchbares Verzeichnis aller Snapshots — der schnellste Weg, eine einzelne Datei zurückzuholen - rest-server: das eigene HTTP-Backend des Projekts, mit Append-only-Modus, damit ein kompromittierter Client die von ihm angelegten Backups nicht löschen kann
- Datenbanken:
--stdinnimmt einen Dump von der Standardeingabe,pg_dump … | restic backup --stdin --stdin-filename db.sqlberührt also nie die Platte
🚀 Warum deb.griffo.io?
- Offizielles Ubuntu: liefert restic in universe, eingefroren zum Release-Zeitpunkt — eine LTS-Installation kann Jahre an Repository- und Prune-Arbeit hinter Upstream liegen
- Upstream-Binary: aktuell, aber ein bzip2-komprimiertes Binary, das du selbst nach
/usr/local/binauspackst, an apt vorbei, und danach mitrestic self-updatepflegst - Snap: eingesperrt, was das Sichern von Pfaden außerhalb des Home-Verzeichnisses und das Einhängen von Snapshots unnötig aufwendig macht
- deb.griffo.io: neueste Version mit automatischen Updates
- ✅ Dasselbe Paket, neuere Version: gleicher Name, gleiche Sektion, gleiche Pfade wie Ubuntus eigenes
restic— ein Ersatz, keine zweite Installation - ✅ Geprüfte Upstream-Builds: jedes Binary wird gegen die
SHA256SUMSvon Upstream geprüft und diese Datei gegen den restic-Release-Schlüssel, bevor gepackt wird - ✅ Automatische Updates: Pakete werden innerhalb von Stunden nach Upstream-Releases aktualisiert
- ✅ Vollständiges Paket: das offizielle Upstream-Binary, der komplette Satz Handbuchseiten (
restic.1plus eine je Unterbefehl) und Vervollständigungen für bash, fish und zsh - ✅ Sechs Architekturen: amd64, arm64, armhf, ppc64el, s390x und riscv64 — NAS, Pi und Mainframe bekommen dasselbe restic
- ✅ Multi-Distribution: läuft auf Ubuntu 22.04, 24.04, 25.10 und 26.04
- ✅ Einfache Wartung: Updates mit den üblichen apt-Befehlen
📦 Paket-Build-Repository
Die Ubuntu-Pakete werden in diesem GitHub-Repository automatisch gebaut und gepflegt:
- 💾 restic-debian - Builds der neuesten Releases
🔗 Verwandte Pakete
Ebenfalls verfügbar über deb.griffo.io:
- rclone - Das Backend, das restic alle übrigen Anbieter erschließt
- Garage - Selbstgehosteter S3-Speicher als Ziel für ein Repository
- Zellij - Multiplexer, damit ein langes erstes Backup weiterläuft
- bottom - Sehen, was ein großes Backup mit der Maschine macht
