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:

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:
bash
Kopieren

sudo -i
rclone config


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

rclone lsd Cloud.Michaelis.Digital:



2. Repository klonen und Dateien ablegen
2.1 Repository klonen
bash
Kopieren

git clone <DEINE-GIT-URL> /opt/backup-config
cd /opt/backup-config

2.2 Dateien kopieren
Kopiere die Konfigurationsdateien an die richtigen Orte:
bash
Kopieren

# 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


3. Secrets anlegen
3.1 Restic-Passwortdatei
Erstelle die Passwortdatei für Restic (nur für Root lesbar!):
bash
Kopieren

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:
ini
Kopieren

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

Lade die Variablen neu:
bash
Kopieren

source /etc/environment


4. systemd aktivieren
bash
Kopieren

systemctl daemon-reload
systemctl enable --now restic-backup.timer
systemctl enable restic-backup.service


Status prüfen:
bash
Kopieren

systemctl status restic-backup.timer
journalctl -u restic-backup.service -f



5. Backup-Repository initialisieren
Falls das Repository noch nicht existiert:
bash
Kopieren

restic -r rclone\:Cloud.Michaelis.Digital\:backup-repo init


6. Snapshots mounten (bei Bedarf)
6.1 Mount-Punkt erstellen
bash
Kopieren

mkdir -p /mnt/restic

6.2 Snapshot mounten (nur bei Bedarf)

Umgebungsvariablen setzen:
bash
Kopieren

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


Snapshot suchen und mounten:
bash
Kopieren

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
bash
Kopieren

fusermount -u /mnt/restic-snapshot


7. Wiederherstellung von Dateien
7.1 Einzelne Dateien wiederherstellen
bash
Kopieren

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

7.2 Vollständiges System wiederherstellen
bash
Kopieren

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


8. 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.

9. Zusammenfassung der Befehle (Copy&Paste-freundlich)
bash
Kopieren

# 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 <DEINE-GIT-URL> 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!

Description
No description provided
Readme 52 KiB
Languages
Shell 100%