Steady-state delta runs in 10-20 min and the weekly cadence left a real RPO gap: app data under /srv/nfs/<svc>/ that isn't a PVC (captured by daily-backup) or a *-backup CronJob (captured daily by the CronJob writing to /srv/nfs/<svc>-backup/) was on a 7-day worst case for off-disk durability. Affected paths include nextcloud shared files, audiobookshelf library, mailserver Maildir, calibre, servarr metadata, real-estate-crawler scraped data, openclaw agent state. Daily cadence drops their RPO to ~24h at negligible cost. Slot: 02:00, 3h ahead of daily-backup (05:00) so the manifest is populated before offsite-sync reads it at 06:00. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
16 lines
606 B
SYSTEMD
16 lines
606 B
SYSTEMD
[Unit]
|
|
Description=Daily local NFS mirror to /mnt/backup
|
|
|
|
[Timer]
|
|
# Daily 02:00 — runs 3h before daily-backup (05:00) so the .changed-files
|
|
# manifest is populated and offsite-sync (06:00) ships both legs' deltas.
|
|
# Switched from weekly Mon 04:00 → daily 2026-05-26: steady-state delta is
|
|
# 10-20 min of mostly-metadata rsync, so the IO cost is negligible and it
|
|
# cuts non-CronJob app-data RPO from 7d to ~24h (matters for nextcloud
|
|
# shared files, audiobookshelf library, mailserver Maildir, etc.).
|
|
OnCalendar=*-*-* 02:00:00
|
|
Persistent=true
|
|
RandomizedDelaySec=15min
|
|
|
|
[Install]
|
|
WantedBy=timers.target
|