KEEP=30 (last 30 archives) approximated 30 days only if there was exactly one dump per day. Prune by file mtime instead (find -mtime +30) so a catch-up burst after time offline doesn't prematurely evict recent dumps, and a quiet stretch doesn't hoard month-old ones.
Scripts and configs — checked-in reference copies
This directory holds the actual scripts and config files running on
alpha.jayfield.org and its backup client(s), checked into git so they're
versioned and reviewable alongside the prose docs that explain why they
exist (README.md, TODO.md, SYNC-PLAN.md in the repo root).
These are reference copies, not a deployment source. Editing a file
here does not change anything on the live server — there is no CI/CD or
sync mechanism pulling from this repo onto either host (matching this
whole repo's existing convention: "changes are made directly on the
server and recorded here afterward", see the root README.md). After
changing something on a live host, re-fetch it into this directory so the
checked-in copy doesn't drift from reality.
Layout
alpha/— scripts and configs that run onalpha.jayfield.orgitself (Ubuntu 24.04 LTS — seealpha/README.mdfor the exact version/kernel).clients/— scripts and configs that run on other hosts this project administers, each in its own subdirectory named after the host. Currently justclients/vlda-01/(Unraid — see its ownREADME.md), but structured to hold more if that ever grows (seeSYNC-PLAN.mdfor what else lives onvlda-01).
Why this split matters: alpha and its clients run different, often
very different, operating systems (Ubuntu vs. Unraid so far) — a script
written for one's conventions (systemd, /etc/cron.d, standard persistent
filesystem) will not just drop into the other unchanged (Unraid's / and
/usr are RAM-backed and don't survive a reboot, its own scheduling is
via the User Scripts plugin, not raw crontab — see clients/vlda-01/README.md
for the specifics that tripped this up while building it). Each
subdirectory's README.md states the exact OS/version a script was
written for, so anyone reusing these later — including future-me — knows
whether a given script's assumptions still hold.