restic-auto-backup/Readme.md
2025-12-28 14:54:29 +00:00

5.1 KiB
Raw Blame History

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.


1. Voraussetzungen installieren

1.1 Pakete installieren

Führe folgende Befehle als Root aus:

sudo pacman -S restic rclone fuse jq curl

1.2 rclone als Root konfigurieren Da Restic das Repository über rclone anspricht, muss rclone als Root konfiguriert werden:

sudo -i
rclone config

Folge den Anweisungen, um dein Cloud-Storage (z. B. Cloud.Michaelis.Digital) einzurichten. Wichtig: Teste die Verbindung mit:

rclone lsd Cloud.Michaelis.Digital:
  1. Repository klonen und Dateien ablegen 2.1 Repository klonen
git clone <DEINE-GIT-URL> /opt/backup-config
cd /opt/backup-config

2.2 Dateien kopieren Kopiere die Konfigurationsdateien an die richtigen Orte:

# Service und Timer
cp restic-backup.service /etc/systemd/system/
cp restic-backup.timer /etc/systemd/system/

# Backup-Skript
cp restic-backup /usr/local/bin/
chmod +x /usr/local/bin/restic-backup
  1. Secrets anlegen 3.1 Restic-Passwortdatei Erstelle die Passwortdatei für Restic (nur für Root lesbar!):

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 (optional) Falls du die Umgebungsvariablen global setzen willst (z. B. für manuelle Backups), füge folgende Zeilen zu /etc/environment hinzu:


RESTIC_REPOSITORY=rclone\:Cloud.Michaelis.Digital\:backup-repo
RESTIC_PASSWORD_FILE=/home/ratatoskr/.restic-pass

Lade die Variablen neu:


source /etc/environment
  1. systemd aktivieren
systemctl daemon-reload
systemctl enable --now restic-backup.timer
systemctl enable restic-backup.service

Status prüfen:

systemctl status restic-backup.timer
journalctl -u restic-backup.service -f
  1. Backup-Repository initialisieren Falls das Repository noch nicht existiert:
restic -r rclone\:Cloud.Michaelis.Digital\:backup-repo init
  1. Snapshots mounten (bei Bedarf) 6.1 Mount-Punkt erstellen
mkdir -p /mnt/restic

6.2 Snapshot mounten (nur bei Bedarf)

Umgebungsvariablen setzen:

export RESTIC_REPOSITORY=rclone\:Cloud.Michaelis.Digital\:backup-repo
export RESTIC_PASSWORD_FILE=/home/ratatoskr/.restic-pass

Snapshot suchen und mounten:

restic -r \$RESTIC_REPOSITORY --password-file \$RESTIC_PASSWORD_FILE snapshots
restic -r \$RESTIC_REPOSITORY --password-file \$RESTIC_PASSWORD_FILE mount /mnt/restic-snapshot/

Hinweis: Das Mounten erfolgt über FUSE und ist lazy Daten werden erst bei Zugriff geladen. 6.3 Unmounten

fusermount -u /mnt/restic-snapshot
  1. Wiederherstellung von Dateien 7.1 Einzelne Dateien wiederherstellen
restic -r rclone\:Cloud.Michaelis.Digital\:backup-repo restore <SNAPSHOT_ID> --target /tmp/restore

7.2 Vollständiges System wiederherstellen

restic -r rclone\:Cloud.Michaelis.Digital\:backup-repo restore <SNAPSHOT_ID> --target /
  1. Wichtige Hinweise

rclone als Root: Restic benötigt Root-Rechte für rclone, da es auf / zugreift. FUSE: Wird automatisch von Restic für das Mounten verwendet. Logs: Backup-Logs findest du in /var/log/restic-backup.log und im Journal (journalctl -u restic-backup.service). Benachrichtigungen: Das Skript sendet Updates an ntfy.michaelis.digital. Passe die URL und Credentials im Skript an.

  1. Zusammenfassung der Befehle (Copy&Paste-freundlich)
# 1. Pakete installieren
pacman -S restic rclone fuse jq curl

# 2. rclone als Root konfigurieren
sudo -i
rclone config

# 3. Repository klonen und Dateien ablegen
git clone <DEINE-GIT-URL> /opt/backup-config
cd /opt/backup-config
cp restic-backup.service /etc/systemd/system/
cp restic-backup.timer /etc/systemd/system/
cp restic-backup /usr/local/bin/
chmod +x /usr/local/bin/restic-backup

# 4. Secrets anlegen
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

# 5. systemd aktivieren
systemctl daemon-reload
systemctl enable --now restic-backup.timer
systemctl enable restic-backup.service

# 6. Repository initialisieren (falls neu)
restic -r rclone\:Cloud.Michaelis.Digital\:backup-repo init

Hinweise zur Nutzung:

Ersetze mit der tatsächlichen URL deines GTA-Repositories. Ersetze DEIN_RESTIC_REPO_PASSWORT mit dem tatsächlichen Passwort für dein Restic-Repository. Die gesamte Datei ist durchgehend in Markdown formatiert und kann direkt als README.md gespeichert werden. Kopieren

Anmerkungen:

  • Alle Code-Blöcke sind korrekt als bash oder ini markiert.
  • Die Struktur ist durchgehend mit --- getrennt, um die Lesbarkeit zu erhöhen.
  • Die Befehle zum Mounten der Snapshots wurden korrigiert und um die Umgebungsvariablen ergänzt.
  • Dopplungen (z. B. die Zusammenfassung der Befehle) wurden entfernt.

Falls du weitere Anpassungen brauchst, lass es mich wissen!