Im ersten Teil des Artikels ging es ja um den generellen Einsatz von Hashdeep und die Erstellung der Dateien, die alle Hashwerte enthält. Heute geht es um die Prüfung der Backups auf Openmediavault aber auch auf externen Laufwerken.
Tägliche Sicherung und täglicher Vergleich
Das NAS wird täglich benutzt, auch um z.B. die Sicherung meiner LXC Container oder auch virtuellen Maschinen vorzunehmen. Im Rahmen dieser Sicherung von mehreren Rechnern aus dem Netz wird auch jeweils ein Jahr der Fotos mit hashdeep geprüft, also ein Audit durchgeführt (Zeile 28-36 die Skriptes). Ein komplettes Audit würde zu lange dauern.
Die Ausgabe kommt dann wie üblich bei einem Cronjob per Mail an, so dass ich hier erkennen kann, ob der Audit erfolgreich war oder nicht. Bei DNG oder auch Tiff Dateien, werden Änderung in die Datei geschrieben, so dass dann hier die Prüfsumme nicht mehr passt. Das ist bedauerlich, lässt sich aber nicht ändern.
Da muss man manchmal, wenn man weiß, die Änderungen sind darauf zurückzuführen, dass die betreffenden Dateien z.B. in Lightroom bearbeitet wurden, das Generieren der Hashes für das jeweilige Jahr neu anstossen.
Externe Backups von Usbbackup prüfen
Zusätzlich zu dem Backup auf dem NAS mit ZFS Dateisystem werden jeden Tag Sicherungen der Fotos und auch der Videoclips mit Hilfe des Plugins usbbackup auf externe Festplatten durchgeführt.
Dafür benutze ich schon seit einiger Zeit ein Gehäuse von Icy Box, dass 4 reguläre 3,5 Zoll Festplatten aufnimmt. Hier sind 2 der Platten für Foto, eine für Video und die 4. schließlich für Backups der virtuellen Maschinen mit Proxmox vorgesehen.
Zusätzlich gibt es noch eine 3. Festplatte für Foto, die jeden Montag mit einer der vorhandenen Festplatten getauscht wird, so dass ich 3 Kopien habe.
Doch wie kann man diese Backups überprüfen. Das Usbbackup Plugin hat z.B. keine Pption, Hook Scripte einzubinden wie z.B. bei Proxmox Backup. Da aber praktisch für jede benutze Platte in Script angelegt wird, kommt man da, wenn auch nicht so elegant, dazwischen.
Das Verzeichnis /var/lib/openmediavault/usbbackup.d enthält die systemd Dateien, die den eigentlichen Aufruf von rsync erledigen. Das kann z.B. eine Service Datei openmediavault-usbbackup-0ba376885cded2fab832bf1cb0828ecc.service sein.
[Unit]
Description=Execute the rsync backup jobs when /dev/disk/by-uuid/4d554c2d-93cb-4f8d-9b00-8a541eb2217f is plugged in
BindsTo=dev-disk-by\x2duuid-4d554c2d\x2d93cb\x2d4f8d\x2d9b00\x2d8a541eb2217f.device
After=local-fs.target dev-disk-by\x2duuid-4d554c2d\x2d93cb\x2d4f8d\x2d9b00\x2d8a541eb2217f.device
Requisite=local-fs.target dev-disk-by\x2duuid-4d554c2d\x2d93cb\x2d4f8d\x2d9b00\x2d8a541eb2217f.device
[Service]
Type=oneshot
RemainAfterExit=false
ExecStart=/root/bin/foto2.sh
#/var/lib/openmediavault/usbbackup.d/systemd-0ba376885cded2fab832bf1cb0828ecc
[Install]
WantedBy=dev-disk-by\x2duuid-4d554c2d\x2d93cb\x2d4f8d\x2d9b00\x2d8a541eb2217f.device
Und dort habe ich dann auch wieder für jede Platte extra den Aufruf in ExecStart auf mein eigenes Script gelenkt. Diese Script ruft die ursprünglich usbbackup Sicherung auf und führt dann den Aufruf von Hashdeep durch, nachdem die entsprechende Festplatte gemounted wurde.
#!/bin/bash
#!/bin/bash
# $Id: foto2.sh 328 2025-01-07 17:31:10Z pm $
# $Rev: 328 $
# $Author: pm $
##################################
/var/lib/openmediavault/usbbackup.d/systemd-0ba376885cded2fab832bf1cb0828ecc
DOW=$(date +%u)
# the next 2 scripts are executed on 1 and 4
if [ $DOW -eq 4 ]; then
sleep 1m
outfile=/var/log/hashdeep.log
# outfile=$(mktemp)
/root/bin/wrapper.sh usb-foto "/dev/disk/by-uuid/4d554c2d-93cb-4f8d-9b00-8a541eb2217f" "/root/foto2" | tee ${outfile}
mail -E -s "Fotos 2 hashdeep" -a "From: <root>" root <${outfile}
# rm ${outfile}
fi
Hier wird zunächst die Rsync Sicherung im Rahmen des eigentlichen USBBackup Prozesses aufgerufen und dann anschließend mein wrapper Script, dass dann ein Audit der Hashes allerdings auf der dann gemounteteten USB Platte vornimmt. Ich weiß nicht sehr elegant, funktioniert aber. Da diese Scripte nur zu bestimmten Wochentagen aufgerufen werden und zusätzlich wie bereits erwähnt auch noch die Sicherungsplatten rotieren müssten im Regelfall nach etwas mehr als einem Jahr alle Jahrgänge und auch alle 3 Platten geprüft sein.
Fazit
Mit den Scripten hier erhalte ich zusätzliche Sicherheit bei den Fotos und Videoclips, was das Backup anbelangt. Auch wenn es umtändlich anmutet, aber das ist es mir wert, alleine schon wgen all der Erinnerungen, die daran hängen (ein paar gute Fotos sind natürlich auch dabei 😉
ciao tuxoche