From 8b9b232109d59e6b5d45326e38160d85e0358d2f Mon Sep 17 00:00:00 2001 From: alf Date: Mon, 9 Mar 2026 12:09:44 +0000 Subject: [PATCH] =?UTF-8?q?README.MD=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.MD | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 README.MD diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..63c0051 --- /dev/null +++ b/README.MD @@ -0,0 +1,74 @@ +# rcloner.sh + +Ein Shell-Script zur automatisierten Verzeichnissicherung mit [rclone](https://rclone.org/). 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](https://rclone.org/install/) 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: + +```bash +chmod +x rcloner.sh +./rcloner.sh +``` + +Für automatische, regelmäßige Sicherungen empfiehlt sich ein Cron-Job: + +```bash +# 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. \ No newline at end of file