Backup Rotator
A small CLI for rotating, verifying, and pruning local backups. Runs on a cron. Designed to be boring, predictable, and impossible to misconfigure silently.
A small Python CLI for the boring but important job of keeping backups honest. The tool rotates a set of backup targets on a schedule, verifies each one (checksum + smoke test), prunes old copies, and emits a single status line per run.
Why
Backups that have never been restored are not backups. This tool exists to make the verify step mandatory and the restore step easy. Every backup run produces a status that can be grepped; every verification is logged; every prune is auditable.
What it does
rotate: take a new backup, prune old ones per a retention policy.verify: read back the latest backup, check the checksum, run a smoke test (configurable per target).prune: drop backups older than the retention policy.status: print a one-line status per target — last backup time, last verify time, last result.
Stack
Python · Click · rclone (for the actual transfer) · systemd timer. Runs on the Hetzner VPS as a daily job. Status is written to a JSON file that a separate dashboard could read.
Auth
No auth. The tool is a CLI; auth is at the OS layer (it runs on the VPS as a dedicated user with restricted permissions).
Stack
python · click · rclone · systemd
Auth
No auth — open access.