Backups mit restic einrichten
restic ist ein freies Backup-Tool, das Sicherungen clientseitig verschlüsselt, dedupliziert und inkrementell in ein S3-Repository schreibt.
Voraussetzungen
- S3-Zugangsdaten und ein Bucket (z. B.
restic-backups) - restic installiert (
apt install restic,dnf install restic,brew install restico. ä.)
Repository initialisieren
export AWS_ACCESS_KEY_ID="IHR_ACCESS_KEY"
export AWS_SECRET_ACCESS_KEY="IHR_SECRET_KEY"
export RESTIC_REPOSITORY="s3:https://s3.internet1.de/restic-backups"
export RESTIC_PASSWORD="ein-sicheres-repository-passwort"
restic init
Repository-Passwort sicher verwahren
Ohne dieses Passwort sind die Backups unwiederbringlich verloren – es kann nicht zurückgesetzt werden.
Backup erstellen
restic backup /etc /home /var/www
# Mit Ausschlüssen
restic backup /home --exclude="*.tmp" --exclude="/home/*/cache"
Snapshots anzeigen:
restic snapshots
Wiederherstellen
# Kompletten Snapshot wiederherstellen
restic restore latest --target /tmp/restore
# Einzelne Pfade
restic restore latest --target /tmp/restore --include /etc/nginx
# Im Repository suchen
restic find "nginx.conf"
Aufbewahrung & Aufräumen
# Behalte: 7 tägliche, 4 wöchentliche, 6 monatliche Snapshots
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
--prune entfernt nicht mehr referenzierte Daten auch physisch aus dem Bucket.
Automatisierung (systemd-Timer)
/etc/restic/env (Rechte 600):
AWS_ACCESS_KEY_ID=IHR_ACCESS_KEY
AWS_SECRET_ACCESS_KEY=IHR_SECRET_KEY
RESTIC_REPOSITORY=s3:https://s3.internet1.de/restic-backups
RESTIC_PASSWORD=ein-sicheres-repository-passwort
/etc/systemd/system/restic-backup.service:
[Unit]
Description=restic Backup
[Service]
Type=oneshot
EnvironmentFile=/etc/restic/env
ExecStart=/usr/bin/restic backup /etc /home /var/www
ExecStartPost=/usr/bin/restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
/etc/systemd/system/restic-backup.timer:
[Unit]
Description=Tägliches restic Backup
[Timer]
OnCalendar=*-*-* 02:30:00
Persistent=true
[Timer]
WantedBy=timers.target
systemctl enable --now restic-backup.timer
Integrität prüfen
restic check # Repository-Struktur prüfen
restic check --read-data-subset=5% # Stichprobe der Daten lesen