Automatisierung von Paperless-Backups auf UGREEN

Hallo zusammen,

ich möchte meine Paperless-Backups automatisieren. Einfach die Verzeichnisse zu kopieren ist bei einem laufenden Container nicht ideal, da so ein konsistenter Snapshot nicht garantiert wird.

Bisher nutze ich den Befehl per SSH:

sudo docker exec paperless-web document_exporter ../export

Dies möchte ich nicht jedes Mal manuell ausführen müssen. Leider verfügt mein UGREEN-NAS über keinen eigenen Aufgabenplaner.

Hat jemand eine Empfehlung, wie man die Backups zuverlässig automatisieren kann – am besten so, dass sie regelmäßig ohne manuellen Eingriff laufen?

Vielen Dank für eure Tipps!

Genau zu diesem Zweck läuft bei mir die App Cronmaster: GitHub - fccview/cronmaster: Cron management made easy

Was muss ich da denn eingeben? Bei mir kommen diverse Meldungen im Log, bzgl. Version zu neu / Command unbekannt?

Also Cronmaster bringe ich zum laufen, allerdings habert es am skript.

Habe paperless-ngx nach der Masterclass eingerichtet. Im docker habe ich dann einen Ordner cronmaster angelegt und dann dazu die Unterordner scripts,data und snippets angelegt. In der docker-compose.yml die Pfade noch angepasst ( /volume1/docker/cronmaster/scripts … ) Mit sudo docker compose up -d cronmaster gestartet. Läuft einwandfrei um mein script für ein Backup von Paperless zu starten.

Ich habe genau für diesen Anwendungsfall Cronicle installiert als Docker Anwendung.

Dort habe ich mir ein Shell Script gebastelt, welches alles automatisiert ausführt zu bestimmten festgelegten Zeiten.

Bedeutet, Paperless wird vorab gestoppt, dann wird das Backup durchgeführt und gezippt, danach an Ort X oder Orte XYZ kopiert, anschliessend wird Paperless wieder gestartet. Dies passiert alle 2 Tage Nachts um 4h.

Wäre jemand so lieb und könnte ein konkretes Beispiel-Skript für Cronmaster / Cronicle posten?

Die Hinweise, was man alles damit machen kann und dass es bei euch funktioniert, sind grundsätzlich hilfreich – für mein aktuelles Problem bringen sie mich aber leider noch nicht richtig weiter.

Ein simples Beispiel (z. B. ein funktionierender Job inkl. Pfade/Trigger) würde mir sehr helfen, das Ganze besser zu verstehen und umzusetzen.

Vielen Dank schon mal!

Na klar, aber die Pfade müssen natürlich angepasst werden.

Das Skript ist auch so eingestellt das automatisch im Ziel Ordner nur die letzten 3 Backups behalten werden.

#!/bin/bash
set -euo pipefail

###############################################

Konfiguration

###############################################

CONTAINER_NAME=„PaperlessNGX“

Host-Pfad (UGOS)

HOST_BACKUP_DIR=„/app/volume1/backup/Programme/Paperless/export“

Container-Pfad (gemountetes Volume!)

CONTAINER_BACKUP_DIR=„/usr/src/paperless/export“

KEEP_COUNT=3

###############################################

Programmablauf

###############################################

echo „Prüfe, ob das Exportverzeichnis existiert…“
mkdir -p „$HOST_BACKUP_DIR“

if ! docker ps --format ‚{{.Names}}‘ | grep -qx „$CONTAINER_NAME“; then
echo „:cross_mark: Container $CONTAINER_NAME läuft nicht.“
exit 1
fi

echo „Starte document_exporter…“
docker exec „$CONTAINER_NAME“ document_exporter „$CONTAINER_BACKUP_DIR“ -z

echo „Bereinige alte Backups (behalte $KEEP_COUNT)…“
ls -1t „$HOST_BACKUP_DIR“ | tail -n +$((KEEP_COUNT + 1)) | while read -r file; do
rm -v – „$HOST_BACKUP_DIR/$file“
done

echo „:white_check_mark: Backup erfolgreich erstellt.“

In Cronicle stellst du dann alles nach Wunsch ein, kopierst das Skript rein und Feuer fei

1 „Gefällt mir“

Wie geschrieben, nutze ich Cronmaster für diesen einfachen Task.

So sieht die Startseite aus:

Dies die Seite um den Task zu editieren:

Und so der Task:

rsync -rt --delete /volume1/docker/paperless-ngx/media/documents/archive/Paperless/ /volume3/CloudSyncDS923+/Homes/Homeoffice/xPaperless

Die Pfade und Volumen musst Du an Deine Umgebung anpassen.

Viel Erfolg und schöne Weihnachten.

Ergänzung, 24.12.25

Ergänzend zum Cronmaster Task, der die Daten 1:1 - also ohne sie zu ZIPpen, läuft auch Cronicle mit einem Script, der die Daten als ZIP sichert und die Sicherungen auf die definierte Anzahl begrenzt.

Diese Script sieht dann bei mir so aus:

Auch hier, musst Du die Variablen an Deine Umgebung anpassen.

1 „Gefällt mir“

Hier eine Konfiguration im Cronmaster

Erstelle und Scripts als erstes ein Script

Danach gehe auf Cronjobs und erstelle nun einen neuen Job und wähle Saved Script dein gespeichertes script aus.

1 „Gefällt mir“

Lässt sich das nicht direkt auf der Linux-Konsole des UGREEN-NAS als CRON-Job angeben? Das wäre doch das Einfachste, wie ich es auf meinem NAS lösen würde.

Pfiffikus,
der kein solches Gerät besitzt, um das auszuprobieren