Mit deinem Code würdest du einen Container erstellen, der den Dump ausführt und sich danach selbst löscht. Das kann man genauso machen wie einen dauerhaften Backup-Container, der regelmäßig einen Dump macht. Neben der GUI (siehe #11) ist das Ausführen einer Aufgabe (
root) eine weitere Möglichkeit:
Code:
docker exec containername mariadb-dump --user=paperless --password=xxx paperless > /volume1/docker/paperless/db/export/$(date +%Y-%m-%d_%H-%M)_paperless-ngx.sql
Du musst nur den
Containernamen der Datenbank,
User, Pass, Datenbank Pfad und
Dump entsprechend anpassen:
docker exec
containername mariadb-dump --user=
paperless --password=
xxx paperless >
/volume1/docker/paperless/db/export/$(date +%Y-%m-%d_%H-%M)_paperless-ngx.sql
Das restlicche, was noch schwarz ist besagt; dass ein Container angeprochen werden soll, was zu machen ist und die Variablen.
Im oben genannten Beispiel wird nur die eine Datenbank (
paperless) exportiert, man kann auch mehrere Datenbanken gleichzeitig angeben oder auch ein komplettes Backup (alle Datenbanken) von MariaDB oder MySQL. Das ist aber nur notwendig, wenn mehrere Anwendungen und Dienste auch in einem Datenbank-Container (nicht Stack) laufen.
Auch das Wiedererstellen funktioniert ähnlich:
Code:
docker exec -i containername mariadb --user=paperless --password=xxx paperless < /volume1/docker/paperless/db/export/dump-datei-namen.sql
Wenn du das Datum im Dumpnamen nicht benötigst, entfernst du einfach:
$(date +%Y-%m-%d_%H-%M)_ aus der Aufgabe. Dann wird der Dump (paperless-ngx.sql) bei jedem Ausführen überschrieben. Das kann man machen, wenn man täglich ein Backup mit Hyperbackup macht, da man das Datum im Hyper Backup auswählen kann. Dann muss man auch beim Wiederherstellen nicht den Dumpnamen manuell anpassen!
Im Aufgabenplaner kannst du die Häufigkeit als auch die Zeit für das Backup einstellen. Achte bitte darauf, dass die Aufgabe als Benutzer "
root" eingestellt ist und dass diese Aufgabe aktiviert ist, damit sie zukünftig automatisch ausgeführt werden kann.
Natürlich kannst du diese Befehle auch direkt in der CLI, Terminal, Putty usw. absetzen. Dazu muss man aber als
"root" mit
sudo -i auch angemeldet sein!
Mit
Code:
find /volume1/docker/paperless/db/export/ -name "*.sql" -mtime +7 -exec rm {} \;
kannst du die alten Dumps aufräumen und nach 7 Tagen automatisch löschen. Der Wert kann natürlich angepasst werden. Eine Aufgabe als "root" ist hierfür
nicht nötig!
Die compose zu zeigen bist du auch nicht nachgekommen, dann hätte man die Pfade etc. besser erkennen und anpassen können, bevor die nächste Frage kommt. Ansonsten da nachfragen woher du die Compose hast, da es viele Unterschiede in den Anleitungen gibt, welche unterschiedliche Probleme machen können. Am besten bleibt man bei original vom Entwickler.
Warum nutzt du MariaDB und nicht Postgres was bei Paperless eigentlich default ist. MairaDB/MySQL kam zuletzt erst als Datenbank dazu. Davor war noch SQLite an Bord. Hat das einen bestimmten Grund weil du noch andere Dienste mit MariaDB nutzt? Oder war das nur aus irgend einer einer Anleitung?