README.MD hinzugefügt

This commit is contained in:
alf
2026-03-09 12:09:44 +00:00
parent 1cd2530799
commit 8b9b232109

74
README.MD Normal file
View File

@ -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.