Restic Backup
đź”’ Restic Backup & Restore
Vollständige Anleitung für Linux  | Sicher • Verschlüsselt • Zuverlässig
1. Was ist Restic?
Restic ist ein modernes, kostenloses Open-Source-Backup-Programm fĂĽr Linux, macOS und Windows. Es zeichnet sich durch folgende Eigenschaften aus:
| Eigenschaft | Beschreibung |
|---|---|
| VerschlĂĽsselung | Alle Backups werden automatisch mit AES-256 verschlĂĽsselt |
| Deduplizierung | Gleiche Daten werden nur einmal gespeichert – spart Speicherplatz |
| Inkrementell | Nur geänderte Dateien werden gesichert – sehr schnell |
| Viele Ziele | Lokal, externe Festplatte, Nextcloud (WebDAV), S3, SFTP, u.v.m. |
| Open Source | Kostenlos, transparent, aktiv weiterentwickelt |
| Cross-Platform | Backup auf Linux erstellen, auf Windows wiederherstellen |
2. Installation
Debian / Ubuntu
sudo apt update && sudo apt install restic
Fedora / Rocky Linux / AlmaLinux
sudo dnf install restic
Aktuellste Version manuell installieren
Die Version in den Paketquellen ist manchmal veraltet. Die neueste Version so aktualisieren:
sudo restic self-update
restic version prĂĽfen, ob die Installation geklappt hat.3. Repository einrichten
Restic speichert Backups in einem sogenannten Repository (kurz: Repo). Dieses muss einmalig initialisiert werden.
3.1 Lokales Repository (externe Festplatte)
restic init --repo /mnt/externe-festplatte/backups
Restic fragt nach einem Passwort – dieses ist sehr wichtig! Ohne Passwort kann das Backup nicht wiederhergestellt werden.
3.2 Nextcloud Repository (WebDAV)
Restic kann direkt in deine Nextcloud sichern. Dazu wird das Tool rclone als BrĂĽcke verwendet.
Schritt 1: rclone installieren
sudo apt install rclone
Schritt 2: rclone konfigurieren
rclone config
Im interaktiven Menü folgendes auswählen:
nfĂĽr neues Remote- Name:
nextcloud - Typ:
webdav - URL:
https://deine-nextcloud.de/remote.php/dav/files/BENUTZERNAME/ - Vendor:
nextcloud - Benutzername und Passwort eingeben
Schritt 3: Repository initialisieren
restic init --repo rclone:nextcloud:/Restic-Backups
4. Backup erstellen
4.1 Home-Verzeichnis sichern (empfohlen)
restic backup --repo /mnt/externe-festplatte/backups /home/BENUTZERNAME
FĂĽr Nextcloud entsprechend:
restic backup --repo rclone:nextcloud:/Restic-Backups /home/BENUTZERNAME
4.2 Ganzes System sichern
Um das komplette System zu sichern, sollten einige Systemverzeichnisse ausgeschlossen werden:
restic backup --repo /mnt/externe-festplatte/backups / \ --exclude /proc \ --exclude /sys \ --exclude /dev \ --exclude /run \ --exclude /tmp \ --exclude /mnt \ --exclude /media
sudo restic backup ...4.3 Backup mit Tags
restic backup --repo /mnt/externe-festplatte/backups /home/BENUTZERNAME --tag wöchentlich
4.4 Passwort-Eingabe automatisieren
Um das Passwort nicht jedes Mal eintippen zu mĂĽssen, kann es in einer Datei gespeichert werden:
echo 'dein-sicheres-passwort' > ~/.restic-passwort chmod 600 ~/.restic-passwort
Dann beim Aufruf:
restic backup --repo /mnt/externe-festplatte/backups --password-file ~/.restic-passwort /home/BENUTZERNAME
5. Backups anzeigen und verwalten
5.1 Alle Snapshots anzeigen
restic snapshots --repo /mnt/externe-festplatte/backups
Beispielausgabe:
ID Zeit Host Pfade ────────────────────────────────────────────────────── a3b4c5d6 2025-02-20 10:00:00 laptop /home/max e7f8a9b0 2025-02-22 10:00:00 laptop /home/max
5.2 Inhalt eines Snapshots anzeigen
restic ls --repo /mnt/externe-festplatte/backups latest
5.3 Alte Snapshots löschen (Aufräumen)
Restic kann automatisch alte Snapshots löschen und nur eine bestimmte Anzahl behalten:
restic forget --repo /mnt/externe-festplatte/backups \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6 \ --prune
Diese Einstellung behält: 7 tägliche + 4 wöchentliche + 6 monatliche Snapshots.
--prune entfernt auch die eigentlichen Daten und gibt Speicherplatz frei.6. Backup wiederherstellen (Restore)
6.1 Komplette Wiederherstellung
restic restore latest --repo /mnt/externe-festplatte/backups --target /
/ (Root) werden vorhandene Dateien ĂĽberschrieben! Nur im Notfall verwenden.6.2 In ein anderes Verzeichnis wiederherstellen (empfohlen)
Sicherer ist es, erst in ein temporäres Verzeichnis wiederherzustellen:
restic restore latest --repo /mnt/externe-festplatte/backups --target /tmp/wiederherstellung
Danach kannst du gezielt einzelne Dateien zurĂĽckkopieren.
6.3 Bestimmten Snapshot wiederherstellen
Zuerst alle Snapshots anzeigen:
restic snapshots --repo /mnt/externe-festplatte/backups
Dann den gewĂĽnschten Snapshot mit seiner ID wiederherstellen:
restic restore a3b4c5d6 --repo /mnt/externe-festplatte/backups --target /tmp/wiederherstellung
6.4 Einzelne Datei oder Ordner wiederherstellen
Mit --include kannst du nur bestimmte Pfade wiederherstellen:
restic restore latest --repo /mnt/externe-festplatte/backups \ --target /tmp/wiederherstellung \ --include /home/max/Dokumente
6.5 Backup als Dateisystem mounten
Du kannst Snapshots wie ein Dateisystem einhängen und darin stöbern – ohne etwas wiederherstellen zu müssen:
mkdir /tmp/restic-mount restic mount --repo /mnt/externe-festplatte/backups /tmp/restic-mount
Danach kannst du mit dem Dateimanager in /tmp/restic-mount alle alten Backups durchsuchen. Mit Strg+C beendest du den Mount.
7. Automatisches Backup einrichten
7.1 Backup-Skript erstellen
Erstelle die Datei /usr/local/bin/restic-backup.sh:
#!/bin/bash REPO=/mnt/externe-festplatte/backups PASSWORT_DATEI=/root/.restic-passwort # Backup erstellen restic backup \ --repo $REPO \ --password-file $PASSWORT_DATEI \ /home/BENUTZERNAME # Alte Snapshots aufräumen restic forget \ --repo $REPO \ --password-file $PASSWORT_DATEI \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6 \ --prune
sudo chmod +x /usr/local/bin/restic-backup.sh
7.2 Automatisch per Cron ausfĂĽhren
Crontab öffnen:
sudo crontab -e
Folgende Zeile einfügen (täglich um 02:00 Uhr):
0 2 * * * /usr/local/bin/restic-backup.sh >> /var/log/restic.log 2>&1
7.3 Systemd Timer (modernere Alternative)
Erstelle /etc/systemd/system/restic-backup.service:
[Unit] Description=Restic Backup [Service] Type=oneshot ExecStart=/usr/local/bin/restic-backup.sh
Erstelle /etc/systemd/system/restic-backup.timer:
[Unit] Description=Restic Backup täglich [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target
Aktivieren:
sudo systemctl daemon-reload sudo systemctl enable --now restic-backup.timer
8. Backup-Integrität prüfen
Es ist wichtig, Backups regelmäßig zu prüfen um sicherzustellen, dass sie im Notfall wirklich funktionieren.
Schnelle PrĂĽfung (nur Metadaten)
restic check --repo /mnt/externe-festplatte/backups
Vollständige Prüfung (alle Daten)
restic check --read-data --repo /mnt/externe-festplatte/backups
9. NĂĽtzliche Umgebungsvariablen
Um Repository und Passwort nicht bei jedem Befehl angeben zu mĂĽssen, kannst du diese in deine ~/.bashrc eintragen:
export RESTIC_REPOSITORY=/mnt/externe-festplatte/backups export RESTIC_PASSWORD_FILE=/home/BENUTZERNAME/.restic-passwort
Danach reicht einfach:
restic backup /home/BENUTZERNAME restic snapshots restic restore latest --target /tmp/wiederherstellung
10. Schnellreferenz – Alle wichtigen Befehle
| Befehl | Beschreibung |
|---|---|
restic init --repo /pfad |
Repository initialisieren |
restic backup --repo /pfad /home/user |
Backup erstellen |
restic snapshots --repo /pfad |
Alle Snapshots anzeigen |
restic restore latest --repo /pfad --target /ziel |
Letztes Backup wiederherstellen |
restic restore ID --repo /pfad --target /ziel |
Bestimmten Snapshot wiederherstellen |
restic ls --repo /pfad latest |
Inhalt des letzten Backups anzeigen |
restic mount --repo /pfad /mnt/punkt |
Backup als Dateisystem einhängen |
restic forget --keep-daily 7 --prune |
Alte Backups löschen |
restic check --repo /pfad |
Backup-Integrität prüfen |
restic self-update |
Restic auf neueste Version aktualisieren |
No Comments