5.5 KiB
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:
- 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
# Rechte setzen
sudo chown ratatoskr:ratatoskr /usr/local/bin/restic-backup
sudo chmod 750 /usr/local/bin/restic-backup
sudo chown root:root /etc/systemd/system/restic-backup.service
sudo chmod 644 /etc/systemd/system/restic-backup.service
sudo chown root:root /etc/systemd/system/restic-backup.timer
sudo chmod 644 /etc/systemd/system/restic-backup.timer
# Dienste starten
sudo systemctl daemon-reload
sudo systemctl enable --now restic-backup.timer
- 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
- 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
- Backup-Repository initialisieren Falls das Repository noch nicht existiert:
restic -r rclone\:Cloud.Michaelis.Digital\:backup-repo init
- 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
- 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 /
- 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.
- 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
bashoderinimarkiert. - 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!