Automatisiertes Sichern mit rsync und cronjob
Rsync-Skript
Das Skript ist für die automatische Sicherung von beliebigen Ordner zuständig und durch verschiedene Parameter konfigurierbar. Die Parameter und deren Bedeutung sind folgende:
- SOURCE – Quellordner
- TARGET – Zielordner
- RSYNCCONF – Parameter zum vollen Synchronisieren
- RSYNC – Speicherort der Binärdatei von „rsync“
Sind alle Parameter konfiguriert, kann das Skript ausgeführt werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #!/bin/bash # # Automatisches Sichern von speziellen anzugebenden Ordner # mit Hilfe von "rsync" und cronjob # # Angabe der Ordner die gesichert werden soll. # ACHTUNG # /[Ordner]/ -> Inhalt des Ordners wird gesichert # /[Ordner] -> Ordner wird gesichert SOURCES="/home/[USER]/Dokumente /home/[USER]/Downloads" # Ziel des Backups auf dem entfernten Rechner. # Benötigt SSH-Key-Exchange TARGET="root@[REMOTE]:/home/backup/" # Parameter zum Synchronisieren # --delete bewirkt ein Datenabgleich inklusive Löschen auf dem Backupmedium RSYNCCONF="--delete" # Dateiname des Logfile LOGFILE="rsync_log.log" # Ort der Binär-Datei von "rsync" RSYNC=`which rsync` # Befehl $RSYNC -avrpuE $RSYNCCONF $SOURCES $TARGET > $LOGFILE exit 0 |
Tipp
Für eine reibungslose Sicherung der Dateien und Ordner sollten für die Anmeldung auf dem Remote-System vorher ein SSH-Key-Exchange durchgeführt werden, damit man kein Passwort im Skript hinterlegen muss.
Cronjob
Damit man eine Automatisierung erreicht, muss das Skript regelmäßig ausgeführt werden. Dafür eignet sich ein Cronjob unter Linux bestens. Die generelle Gliederung der Zeitangaben ist die folgende:
* * * * * auszuführender Befehl ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ └──── Wochentag (0-7) (Sonntag =0 oder =7) │ │ │ └────── Monat (1-12) │ │ └──────── Tag (1-31) │ └────────── Stunde (0-23) └──────────── Minute (0-59)
Exemplarisch soll das Skript immer in der Mittagspause durchgeführt werden. Damit ist gewährleistet das der Rechner im Betrieb ist und er mit hoher Wahrscheinlichkeit nichts zutun hat. Ein Cronjob für die Ausführung des Skript täglich um 12 Uhr sieht wie folgt aus:
1 | 0 12 * * * /home/[USER]/Dokumente/rsync_script.sh |
Download
Rechte
Rechte ändern nicht vergessen. Das Skript muss ausführbar sein.
1 | chmod +x /home/[USER]/Dokumente/rsync_script.sh |