Aufgabe #1840
offen
Datensicherungen (Backups) vom Dienst Website (Anwendung Plone) einrichten
Von GoeranHeinemann vor 11 Monaten hinzugefügt.
Vor 11 Monaten aktualisiert.
Beschreibung
Die Website liegt aktuell auf einem Host mit veralteten FreeNAS srs1337.
Aktuell werden nur periodisch Snapshots gemacht.
Die relevanten Datasets (für unsere Website) sollen einfach auf den Proxmox Backup Server geschoben werden.
Die relevanten Datasets für ZFS der Quelle (srs1337) sind
zroot/data/website/plone/var/filestorage
zroot/data/website/plone/var/blobstorage
.
Folgendes Script synchronisiert alle fehlenden Snapshots von dem Website-Host. Es gibt ggf. warnungen aus, wenn nichts mehr kopiert werden muss und sonst pro dataset den Return-Code des zfs receive befehls. Eine 0 bedeutet also, dass erfolgreich kopiert wurde und 1 heißt meistens, dass der neuste Snapshot lokal schon der neuste vom Truenas ist.
#!/bin/sh
#plone jail base without site data
#check latest local snapshot
last=$(zfs list -t snap backup/plone/jails/plone -o name | tail -n 1 | awk -F'@' '{print $2}')
#check latest remote snapshot
latestRemote=$(ssh root@141.56.51.121 -p 1005 -i ./plonebackup "zfs list -t snap -o name -r zroot/jails/plone | tail -n 1" | awk -F'@' '{print $2}')
#create incremental send stream between latest remote and local
ssh root@141.56.51.121 -p 1005 -i ./plonebackup "zfs send -I @$last zroot/jails/plone@$latestRemote" | zfs recv backup/plone/jails/plone
echo $?
last=$(zfs list -t snap -o name backup/plone/website/plone/var/filestorage | tail -n 1 | awk -F'@' '{print $2}')
latestRemote=$(ssh root@141.56.51.121 -p 1005 -i ./plonebackup "zfs list -t snap -o name -r zroot/data/website/plone/var/filestorage | tail -n 1" | awk -F'@' '{print $2}')
ssh root@141.56.51.121 -p 1005 -i ./plonebackup "zfs send -I @$last zroot/data/website/plone/var/filestorage@$latestRemote" | zfs recv backup/plone/website/plone/var/filestorage
echo $?
last=$(zfs list -t snap -o name backup/plone/website/plone/var/blobstorage | tail -n 1 | awk -F'@' '{print $2}')
latestRemote=$(ssh root@141.56.51.121 -p 1005 -i ./plonebackup "zfs list -t snap -r -o name zroot/data/website/plone/var/blobstorage | tail -n 1" | awk -F'@' '{print $2}')
ssh root@141.56.51.121 -p 1005 -i ./plonebackup "zfs send -I @$last zroot/data/website/plone/var/blobstorage@$latestRemote" | zfs recv backup/plone/website/plone/var/blobstorage
echo $?
Damit das Script überhaupt funktioniert muss man zu erst einmalig alle Datasets manuell kopieren. Danach muss man (auf PBS) die Datasets wieder entmounten und dann auf "zfs set mountpoint=legacy <dataset>" gesetzt, damit keine index Dateien erstellt werden, weil die Snapshots sonst nicht empfangen werden können, wenn lokale änderungen existieren. Außerdem habe ich einen SSH-Key angelegt und diesen auf dem TrueNAS hinterlegt. Als letztes könnte man das Script dann noch in eine Systemd-Unit mit Timer packen, oder einen Eintrag in der crontab-Datei anlegen, um stündlich, oder einmal täglich alle Snapshots zu kopieren.
- Beschreibung aktualisiert (Vergleich)
- Kategorie wurde auf srs1337 gesetzt
- Status wurde von Neu zu In Bearbeitung geändert
- Thema wurde von Backups für Plone einrichten zu Datensicherungen (Backups) vom Dienst Website (Anwendung Plone) einrichten geändert
Auch abrufbar als: Atom
PDF