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/
Neueste Kommentare