RSync Backup des Paperless-NGX Servers

Zwischen dem Aufsetzen meines Paperless-NGX Servers mit Version 1.8.0 auf Ubutu 22.04-lts und dem aktuellen Stand auf GitHub (v1.9.2) sind nun auch einige Tage der Nutzung ins Land gezogen. Mittlerweile sind auf dem Paperless-NGX auch schon schlappe ~2500 Dokumente eingezogen. Also ist es langsam an der Zeit sich über ein Backup Gedanken zu machen, bevor ich dann in die vollständige Nutzung übergehe und die Dokumente, welche jetzt verstreut über alle möglichen HDDs und Partionen, lösche. Okay ein Datensenke für solche Fälle habe ich (danke Ralph), welche auch der Kater nicht kaputt bekommen hat. 🙂

Auf dem NAS habe ich NFS Mountpoint /backup für solche Themen angelegt.

Ich benötige also ein Backup Script, welches den Mount Point einbindet:

mount -t nfs 192.168.255.351:/backup /mnt/backup

Anschließend soll das Script prüfen, ob auf dem NAS der NFS Point erreichbar ist – indem er ein Unterverzeichnis auf Anwesenheit prüft. Also mit einem if; then unter Bash.

if [ -d /mnt/backup/bimmbimm/root/ ]; then

Anschließend soll das Backup mittels RSync duchgeführt werden. Und zwar nur solche Verzeichnisse, welche nicht bei jedem Boot neu erzeugt werden und vor allem auch nicht /mnt, da ich diesen Pfad extra sichere.

rsync -aAv --progress --delete --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/tmp --exclude=/run --exclude=/mnt --exclude=/media --exclude=/lost+found --exclude=/opt/paperless-ngx/data/ / /mnt/backup/bimmbimm/root/


Wie haben also alle Zutaten für ein passendes Script beisammen. Bauen wir uns das mal zusammen… und ja, ich weiß das man bei exclude auch mit {} arbeiten kann. Dummerweise macht das Rsync v3.2.3 auf dem Ubuntu damit Zicken. Auf meinem Desktoprechner (läuft unter Linux Arch) mit Rsync v3.2.6 geht es ohne Probleme.

#!/bin/sh
# This script makes a backup to my nfs

mount -t nfs 192.168.255.351:/backup /mnt/backup

if [ -d /mnt/backup/bimmbimm/root/ ]; then
 echo "Starte rsync /*"
 rsync -aAv --progress --delete --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/tmp --exclude=/run --exclude=/mnt --exclude=/media --exclude=/lost+found --exclude=/opt/paperless-ngx/data/ / /mnt/backup/bimmbimm/root/
LOG=/var/log/backup.log
 echo "arch backup *** $(date -R) ***" >> $LOG
else
 echo "/mnt/backup/bimmbimm/root/ not found"
fi

if [ -d /mnt/backup/bimmbimm/storage/ ]; then
 echo "Starte rsync /mnt/storage/*"
 rsync -aAv --progress --delete /mnt/storage/* /mnt/backup/bimmimm/storage/
 LOG=/var/log/backup.log
 echo "storage backup *** $(date -R) ***" >> $LOG
else 
 echo "/mnt/backup/bimmbimm/storage/ not found"
fi

umount /mnt/backup/

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert