restic-auto-backup/Readme.md
2025-12-22 19:05:36 +00:00

196 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:
```bash
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
sudo -i
rclone config
Folge den Anweisungen, um dein Cloud-Storage (z. B. Cloud.Michaelis.Digital) einzurichten.
Wichtig: Teste die Verbindung mit:
```bash
rclone lsd Cloud.Michaelis.Digital:
```
2. Repository klonen und Dateien ablegen
2.1 Repository klonen
```bash
git clone <DEINE-GIT-URL> /opt/backup-config
cd /opt/backup-config
```
2.2 Dateien kopieren
Kopiere die Konfigurationsdateien an die richtigen Orte:
```bash
# 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
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:
```Bash
RESTIC_REPOSITORY=rclone\:Cloud.Michaelis.Digital\:backup-repo
RESTIC_PASSWORD_FILE=/home/ratatoskr/.restic-pass
```
Lade die Variablen neu:
```bash
source /etc/environment
```
4. systemd aktivieren
```bash
systemctl daemon-reload
systemctl enable --now restic-backup.timer
systemctl enable restic-backup.service
```
Status prüfen:
```bash
systemctl status restic-backup.timer
journalctl -u restic-backup.service -f
```
5. Backup-Repository initialisieren
Falls das Repository noch nicht existiert:
```bash
restic -r rclone\:Cloud.Michaelis.Digital\:backup-repo init
```
6. Snapshots mounten (bei Bedarf)
6.1 Mount-Punkt erstellen
```bash
mkdir -p /mnt/restic
```
6.2 Snapshot mounten (nur bei Bedarf)
Umgebungsvariablen setzen:
```bash
export RESTIC_REPOSITORY=rclone\:Cloud.Michaelis.Digital\:backup-repo
export RESTIC_PASSWORD_FILE=/home/ratatoskr/.restic-pass
```
Snapshot suchen und mounten:
```bash
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
fusermount -u /mnt/restic-snapshot
```
7. Wiederherstellung von Dateien
7.1 Einzelne Dateien wiederherstellen
```bash
restic -r rclone\:Cloud.Michaelis.Digital\:backup-repo restore <SNAPSHOT_ID> --target /tmp/restore
```
7.2 Vollständiges System wiederherstellen
```bash
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
# 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!