nfs-mirror: exclude /vzdump/ — it was reaping the new VM-image backups nightly

nfs-mirror does `rsync -rlt --delete /srv/nfs/ -> /mnt/backup/`; any /mnt/backup
dir with no /srv/nfs counterpart is an orphan and gets --delete'd. vzdump-vms
(added yesterday) writes /mnt/backup/vzdump/, which wasn't excluded — so the
02:00 nfs-mirror run silently deleted both successful 40G devvm images
(verified: dir gone, 40G freed, despite status=0 success logs). Add
--exclude='/vzdump/' alongside the existing pvc-data/pfsense/pve-config/
sqlite-backup excludes that exist for exactly this reason. TDD-proven with an
isolated rsync --delete -n -v. backup-dr.md notes the dependency.

[ci skip]

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Viktor Barzin 2026-06-10 09:04:57 +00:00
parent 2b8c0def30
commit d9ea7812f5
2 changed files with 5 additions and 1 deletions

View file

@ -54,11 +54,14 @@ PUSHGATEWAY="${NFS_MIRROR_PUSHGATEWAY:-http://10.0.20.100:30091}"
PUSHGATEWAY_JOB=nfs-mirror
EXCLUDES=(
# ---- /mnt/backup subtrees owned by daily-backup — leave alone ----
# ---- /mnt/backup subtrees owned by OTHER backup jobs — leave alone ----
# Without these, the top-level `rsync --delete /srv/nfs/ → /mnt/backup/` below
# reaps any /mnt/backup dir that has no /srv/nfs counterpart.
--exclude='/pvc-data/'
--exclude='/sqlite-backup/'
--exclude='/pfsense/'
--exclude='/pve-config/'
--exclude='/vzdump/' # VM images from vzdump-vms — NOT a /srv/nfs svc (else --delete reaps them nightly)
--exclude='/lost+found/'
# ---- state files used by other backup jobs ----