From 978f87134153080ec63c4de496d9f4aebedd714d Mon Sep 17 00:00:00 2001 From: h7x4 Date: Wed, 28 Jan 2026 16:59:40 +0900 Subject: [PATCH] backup.sh: sjekk at backup-kataloger har tilsvarende monterte datasett --- backup.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/backup.sh b/backup.sh index 266868a..75ae4a6 100755 --- a/backup.sh +++ b/backup.sh @@ -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"