backup.sh: sjekk at backup-kataloger har tilsvarende monterte datasett

This commit is contained in:
2026-01-28 16:59:40 +09:00
parent d765976a36
commit 978f871341

View File

@@ -262,6 +262,36 @@ declare -ra tom_excludes=(
)
### Slutt på liste over vertsmaskiner og hva som skal tas backup av. ###
# Sjekk at alle backup-kataloger har tilhørende datasett, og at datasettene er montert
for host in "${hosts[@]}"; do
declare katalog="/backupz/${hosts_output_dir[$host]:-$host}"
declare dataset="principal/backupz/${hosts_output_dir[$host]:-$host}"
# Sjekk at ZFS-datasettet finnes
if ! zfs list "$dataset" >/dev/null 2>&1; then
echo "Feil: ZFS-datasettet '$dataset' finnes ikke. Opprett det med: zfs create $dataset" >&2
rm "$lockfile"
exit 1
fi
if [ ! -d "$katalog" ]; then
echo "Feil: katalogen '$katalog' finnes ikke. Opprett den med: mkdir '$katalog'" >&2
rm "$lockfile"
exit 1
fi
# Sjekk at datasettet er montert, og forsøk å mounte om nødvendig
declare mounted_val="$(zfs get -H -o value mounted "$dataset" 2>/dev/null || echo "no")"
if [ "${mounted_val:-no}" != "yes" ]; then
echo "Datasettet '$dataset' er ikke montert på '$katalog'. Forsøker å mounte..."
if ! zfs mount "$dataset" >/dev/null 2>&1; then
echo "Kunne ikke mounte '$dataset'. Avbryter." >&2
rm "$lockfile"
exit 1
fi
fi
done
declare -ri start_time="$(date +%s)"
declare -r rsync="/usr/local/bin/rsync"