2026-03-09 12:09:44 +00:00
2025-09-25 21:31:58 +00:00
2026-03-09 12:04:09 +00:00
2026-03-09 12:09:44 +00:00

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:

  1. 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).

  2. Archiv packen Das Archiv-Verzeichnis wird zu einer ZIP-Datei komprimiert (rclone archive create).

  3. 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 PATH verfü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: REPO muss dem exakten Namen eines bereits mit rclone config angelegten Remotes entsprechen. Das Archiv-Verzeichnis (ARCHIV) wird automatisch als Zeitstempel im Format YYYY-MM-DD-HH-MM generiert.


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.
Description
No description provided
Readme 45 KiB
Languages
Shell 100%