3.1 KiB
rcloner.sh
Ein Shell-Script zur automatisierten Verzeichnissicherung mit rclone. Es synchronisiert ein lokales Quellverzeichnis mit einem Remote-Repository, archiviert dabei überschriebene oder gelöschte Dateien und komprimiert das Archiv anschließend zu einer ZIP-Datei.
Funktionsweise
Das Script führt bei jedem Aufruf drei Schritte aus:
-
Synchronisation – Das Quellverzeichnis wird mit dem Zielverzeichnis auf dem Remote synchronisiert (
rclone sync). Dateien, die dabei überschrieben oder gelöscht würden, werden nicht einfach verworfen, sondern in ein zeitgestempeltes Archiv-Verzeichnis auf dem Remote verschoben (--backup-dir). -
Archiv packen – Das Archiv-Verzeichnis wird zu einer ZIP-Datei komprimiert (
rclone archive create). -
Archiv-Verzeichnis löschen – Das nun gepackte, temporäre Archiv-Verzeichnis wird vom Remote entfernt (
rclone purge).
Alle Schritte werden in einer Logdatei protokolliert.
Voraussetzungen
- rclone installiert und im
PATHverfügbar - Mindestens ein rclone-Remote bereits konfiguriert (
rclone config)
Konfiguration
Vor dem ersten Einsatz müssen die Variablen im Abschnitt Einstellungen am Anfang des Scripts angepasst werden:
| Variable | Beschreibung | Beispiel |
|---|---|---|
REPO |
Name des konfigurierten rclone-Remotes | mein-cloud-speicher |
REPO_DIR |
Zielverzeichnis auf dem Remote | Backups/Dokumente |
QUELLE |
Lokales Quellverzeichnis | /home/user/Dokumente |
ARCHIV_DIR |
Archiv-Verzeichnis auf dem Remote | Archiv (Standard) |
ARCHIV |
Name des Archiv-Unterverzeichnisses | 2025-06-01-14-30 (automatisch, Zeitstempel) |
LOGBUCH |
Pfad zur Logdatei | $HOME/Dokumente/log.log (Standard) |
LOGLEVEL |
rclone-Loglevel für Sync und Packen | INFO (Standard) |
Hinweis:
REPOmuss dem exakten Namen eines bereits mitrclone configangelegten Remotes entsprechen. Das Archiv-Verzeichnis (ARCHIV) wird automatisch als Zeitstempel im FormatYYYY-MM-DD-HH-MMgeneriert.
Verwendung
Script ausführbar machen und starten:
chmod +x rcloner.sh
./rcloner.sh
Für automatische, regelmäßige Sicherungen empfiehlt sich ein Cron-Job:
# Beispiel: täglich um 02:00 Uhr
0 2 * * * /pfad/zu/rcloner.sh
Logging
Alle Ausgaben werden sowohl auf der Konsole als auch in die unter LOGBUCH konfigurierte Datei geschrieben. Jeder Lauf wird mit Zeitstempel und Trennlinien abgegrenzt. Der Loglevel für den purge-Schritt (Archiv-Verzeichnis löschen) ist fest auf DEBUG gesetzt, um maximale Transparenz bei destruktiven Operationen zu gewährleisten.
Hinweise
- Das Script verwendet
rclone sync, d. h. Dateien, die lokal nicht mehr vorhanden sind, werden auf dem Remote gelöscht – jedoch erst nach Ablage im Archiv. - Es wird empfohlen, das Script vor dem produktiven Einsatz mit einem Test-Remote und einem Test-Verzeichnis zu erproben.
- Die Logdatei wächst mit jedem Lauf. Eine regelmäßige Rotation (z. B. via
logrotate) wird empfohlen.