- Shell 100%
| README.md | ||
| rsync-backup.sh | ||
Backup-Skript
Dieses Skript sichert per rsync zwei Verzeichnisse von andreas@192.168.1.4 und legt daraus komprimierte tar.gz-Archive ab.
Gesicherte Pfade
/home/plan/Plandaten//home/samba/shares/
Fuer /home/samba/shares/ wird die Exclude-Datei /root/rsync-backup-gsg/exclude-list.txt verwendet.
Ziel und Ablauf
- Zielbasis:
/root/rsync-backup-gsg/archive - Tages-Backups: Standardfall
- "Monthly"-Backups: am 1. und 15. eines Monats
- Jahres-Backup: am 1. Januar
Das Skript laedt die Daten zuerst in ein temporaeres Verzeichnis, erstellt daraus ein Archiv, prueft das Archiv und verschiebt es erst dann an den finalen Namen. So bleibt ein vorhandenes Backup erhalten, falls ein Lauf fehlschlaegt. Beide Zielarchive werden erst dann final uebernommen, wenn der komplette Lauf fuer beide Quellen erfolgreich vorbereitet wurde.
Aufruf
- Geplanter Lauf:
/root/rsync-backup-gsg/rsync-backup.sh - Manueller Einmallauf:
/root/rsync-backup-gsg/rsync-backup.sh --manual
Manuelle Backups landen im gleichen Verzeichnis wie die geplanten Backups, erhalten aber den Zusatz -manual-<ZAHL> im Dateinamen. Die Zahl beginnt pro Tag bei 1 und wird bei jedem weiteren manuellen Lauf desselben Tages hochgezaehlt, z. B.:
2026-06-16_plandaten-manual-1.tar.gz2026-06-16_backup-gsg-homes-manual-1.tar.gz2026-06-16_plandaten-manual-2.tar.gz
Cronjob
Empfohlener Cronjob:
0 2 * * * /root/rsync-backup-gsg/rsync-backup.sh >> /root/rsync-backup-gsg/rsync-backup.log 2>&1
Das Skript setzt seinen benoetigten PATH selbst, damit der Cron-Lauf auch mit minimaler Umgebung stabil bleibt.
Wichtige Voraussetzungen
- Ausfuehrung als
root - SSH-Key vorhanden unter
/root/.ssh/rsync-keys/id_rsa rsync,ssh,tar,find,flock,mktempmuessen installiert sein
Aufbewahrung
daily: 7 Tagemonthly: 365 Tagemanual: 90 Tage (ca. 3 Monate)
Fuer yearly ist aktuell keine automatische Bereinigung definiert.