Restic System Backup – Konfiguration & Wiederherstellung
Dieses Repository enthält die Konfiguration für automatisierte System-Backups mit Restic, inklusive systemd-Service, Timer und Backup-Skript. Das Setup nutzt rclone als Backend (z. B. Nextcloud).
1. Voraussetzungen
1.1 Benötigte Pakete installieren
Als Root ausführen:
pacman -S restic rclone fuse jq curl
1.2 rclone als Root konfigurieren (wichtig!) Da das Backup als root läuft, muss rclone auch im Root-Kontext konfiguriert sein:
sudo -i
rclone config
Remote testen:
rclone lsd Cloud.Michaelis.Digital:
- Repository klonen und Dateien ablegen
git clone <DEINE-GIT-URL> /opt/backup-config
cd /opt/backup-config
Dateien installieren
# systemd Units
cp restic-backup.service /etc/systemd/system/
cp restic-backup.timer /etc/systemd/system/
Backup-Skript
cp restic-backup /usr/local/bin/restic-backup
chmod 750 /usr/local/bin/restic-backup
Rechte setzen
chown ratatoskr:ratatoskr /usr/local/bin/restic-backup
chown root:root /etc/systemd/system/restic-backup.service
chown root:root /etc/systemd/system/restic-backup.timer
chmod 644 /etc/systemd/system/restic-backup.service
chmod 644 /etc/systemd/system/restic-backup.timer
- Secrets anlegen 3.1 Restic-Passwortdatei
mkdir -p /home/ratatoskr
echo "DEIN_RESTIC_REPO_PASSWORT" > /home/ratatoskr/.restic-pass
chmod 600 /home/ratatoskr/.restic-pass
chown root:root /home/ratatoskr/.restic-pass
3.2 Umgebungsvariablen (empfohlen)
export RESTIC_REPOSITORY=rclone:Cloud.Michaelis.Digital:Restic/backup-repo
export RESTIC_PASSWORD_FILE=/home/ratatoskr/.restic-pass
Diese Variablen können z. B. in:
/etc/profile.d/restic.sh
oder im systemd-Service
gesetzt werden.
- systemd aktivieren
systemctl daemon-reload
systemctl enable --now restic-backup.timer
Status prüfen:
systemctl status restic-backup.timer
journalctl -u restic-backup.service
- Repository initialisieren (nur beim ersten Mal!) ⚠️ Nur ausführen, wenn das Repository noch nicht existiert!
restic -r rclone:Cloud.Michaelis.Digital:Restic/backup-repo init
- Snapshots einsehen & mounten (Read-Only Restore) 6.1 Snapshots anzeigen
restic snapshots
6.2 Snapshots mounten
mkdir -p /mnt/restic
restic mount /mnt/restic
Danach verfügbar unter:
/mnt/restic/snapshots/<SNAPSHOT_ID>/
Unmount:
fusermount -u /mnt/restic
- Wiederherstellung 7.1 Einzelne Dateien oder Ordner
restic restore <SNAPSHOT_ID> \
--target /tmp/restore \
--include /home/ratatoskr/.ssh
7.2 ⚠️ Vollständiges System-Restore (NICHT empfohlen) Ein Full-Restore auf ein laufendes System wird nicht empfohlen. Stattdessen selektiv wiederherstellen.
- Hinweise & Best Practices rclone läuft als root
Snapshots immer zuerst mounten, dann selektiv kopieren
Kein blindes Restore von /etc oder /usr
Logs:
/var/log/restic-backup.log
journalctl -u restic-backup.service
Benachrichtigungen via ntfy sind im Script konfigurierbar
- Minimaler Quickstart (erprobt)
Copy code
export RESTIC_REPOSITORY=rclone:Cloud.Michaelis.Digital:Restic/backup-repo
export RESTIC_PASSWORD_FILE=/home/ratatoskr/.restic-pass
restic snapshots
restic mount /mnt/restic