Paperless-ngx Paperless-ngx Datensicherung

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.058
Punkte für Reaktionen
905
Punkte
204
Gibt es denn das Verzeichnis /export/back-up?
 

cplex

Benutzer
Mitglied seit
24. Feb 2024
Beiträge
42
Punkte für Reaktionen
9
Punkte
8
Ja, das ist der Pfad aus der File Station: /docker/paperless-ngx/export/backup-db
Ist wie im Skript angegeben...

Das Mapping (falls relevant) in der yml ist:
Code:
 volumes:
  - ../export:/usr/src/paperless/export
 
Zuletzt bearbeitet:

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.212
Punkte für Reaktionen
4.936
Punkte
519
Du musst in dem Script auch nicht den Pfad auf dem Host, sondern den Pfad im Container angeben.
 

cplex

Benutzer
Mitglied seit
24. Feb 2024
Beiträge
42
Punkte für Reaktionen
9
Punkte
8
Du meinst für das Ziel des dumps? Wie bekommen ich "den Pfad im Container" den ermittelt?

Die Datenbankdaten sollten in /var/lib/postgresql/data liegen. Das ist gemapped nach ../pgdata:/var/lib/postgresql/data. Somit lässt sich der Ordner pgdata (und alle andern Paperless-Ordner) mit Hype Backup sichern.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.212
Punkte für Reaktionen
4.936
Punkte
519
Dann erstelle doch im Ordner pgdata auf dem Host nen Unterordner mit dem Namen Backup. Darein kannst du dann die Backups laufen lassen. Aber wie gesagt halt mit Sicht des Containers und nicht des Hosts. Der Pfad wäre dann also /var/lib/postgresql/data/Backup
 
  • Like
Reaktionen: cplex

cplex

Benutzer
Mitglied seit
24. Feb 2024
Beiträge
42
Punkte für Reaktionen
9
Punkte
8
Man, man, man... Jetzt fiel der Groschen!

Die Aufgabe steht und der Dump wird erzeugt. Den kann ich mit Hyper Backup wegsichern.

Besten Dank (y)
 

cplex

Benutzer
Mitglied seit
24. Feb 2024
Beiträge
42
Punkte für Reaktionen
9
Punkte
8
Dann erstelle doch im Ordner pgdata auf dem Host nen Unterordner mit dem Namen Backup. Darein kannst du dann die Backups laufen lassen. Aber wie gesagt halt mit Sicht des Containers und nicht des Hosts. Der Pfad wäre dann also /var/lib/postgresql/data/Backup
Gerade habe ich noch einmal das Ergebnis der Aufgabe per Email erhalten. Ich erhalte wieder:
Aktueller Status: 0 (Normal)
Standardausgabe/Fehler:
/bin/bash: line 0: cd: /docker/paperless-ngx/pgdata/backup-pg: No such file or directory
Obwohl der Dump im angegebenen Ordner erzeugt wird.

Hier noch einmal mein Skript:
Bash:
cd /docker/paperless-ngx/pgdata/backup-pg
find -mtime +28 -delete
docker exec paperless-db-1 bash -c "pg_dumpall -U paperless | gzip > /var/lib/postgresql/data/backup-pg/pg_dumpall_$(date +%F_%a_%T_%Z).dump.gz"
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.212
Punkte für Reaktionen
4.936
Punkte
519
Das liegt am cd-Befehl, den du wie gesagt nicht brauchst. Wenn du schon mit Change Directory da hinhüpfen willst, wäre der korrekte Befehl cd /volume1/docker/paperless-ngx/pgdata/backup-pg
 
  • Like
Reaktionen: cplex

cplex

Benutzer
Mitglied seit
24. Feb 2024
Beiträge
42
Punkte für Reaktionen
9
Punkte
8
Ich dachte für find -mtime +28 -delete ist es notwenig, dass vorher der Ort (Pfad) bekannt ist...

OT @plang.pl
Siehst Du meine Posts eigentlich bevor ich sie abschicke? Es ist ja fast etwas unheimlich, wie schnell Du tippst... :alien:
 
  • Haha
Reaktionen: plang.pl

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.212
Punkte für Reaktionen
4.936
Punkte
519
Ja, das war vorhin schon ziemlich flott :cool:
Achso stimmt, da hast du recht. Dann brauchst du den doch. Die Alternative wäre, den Pfad direkt in der find Anweisung mitzuschicken. Für so ein kleines Script kannst du das aber durchaus mit dem Change Directory machen. Wie gesagt, fehlt da nur noch das /volume1 (oder eben das Volume auf dem dein Ordner liegt) und dann müsste es gehen.
 
  • Like
Reaktionen: cplex

cplex

Benutzer
Mitglied seit
24. Feb 2024
Beiträge
42
Punkte für Reaktionen
9
Punkte
8
Angepasst mit /volume1 und läuft.

Danke @plang.pl
 
  • Like
Reaktionen: plang.pl

Dog6574

Benutzer
Mitglied seit
15. Sep 2014
Beiträge
178
Punkte für Reaktionen
1
Punkte
18
Hallo.

Ich habe nun mein virtuelles DSM lauffähig und habe darauf Paperless installiert. Könnt ihr mir kurz erklären wie ich den Dump einspielen kann?

Gruß,
 

Dog6574

Benutzer
Mitglied seit
15. Sep 2014
Beiträge
178
Punkte für Reaktionen
1
Punkte
18
Hallo.

Ich glaube ich weiss nun wie es geht:

psql -d $POSTGRES_DB -U $POSTGRES_USER < /backup/backup.sql

Danach wurde der Import gestartet. Mein Rechner hatte sich leider schlafen gelegt. Ich denke, weil die Datenbank so groß ist dauert es ein wenig in der virtuellen Umgebung.

Danach brauche ich doch nur noch die Dokumente neu einlesen...oder nur die Ordner mit Hyper Backup zurückspielen??

Gruß,
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.058
Punkte für Reaktionen
905
Punkte
204
Ich habe den Eindruck, da liegt bei dir ein Verständnisprobleme vor. Wenn du die Dokumente neu einliest, sind sie in der Datenbank doppelt vorhanden. deswegen funktioniert das nur, wenn die Sicherung aus Hyper Backup eingespielt wird. Aber ich habe ja die Anleitung über das Vorgehen verlinkt. die bezieht sich zwar auf ein Updates PostgreSQL-Containers, aber die Idee dahinter ist die gleiche.
 

Dog6574

Benutzer
Mitglied seit
15. Sep 2014
Beiträge
178
Punkte für Reaktionen
1
Punkte
18
Bevor ich aber alle Verzeichnisse mit Hyperbackup einspiele muss ich aber in der virtuellen Umgebung Paperless frisch aufsetzen und den Dump einspielen oder brauche ich den Dump dann nicht?

Gruss
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.058
Punkte für Reaktionen
905
Punkte
204
Wenn alles wie erwartet funktioniert und die Datenbank keinen Fehler hat, dann reicht es, die vorhandene Sicherung einzuspielen und danach wie auch immer die drei Container erstellen zu lassen. Ich persönlich mache das über einen Befehl, der dann die Konfiguration der yml und env abfragt und die Container erstellt, das funktioniert aber genauso über Portainer.

Der Grund für den Dump ist, das ist immer mal wieder passieren kann, dass in der Datenbank geschrieben wird, während gerade die Sicherung von Hyperback abläuft, weil beide Prozesse nichts voneinander wissen. In dem Falle passen die Daten in der Datenbank eventuell nicht zu den Daten im Ordner und dann würde es einen Fehler geben. Wenn das der Fall ist, dann hilft es, einen Dump einzuspielen, weil für den jeder interne Prozess in der Datenbank kurz gestoppt wird.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat