A dead man's switch for your backups
Success emails stop arriving exactly when things break, and no email looks the same as good news. A dead man's switch inverts the reporting. The job checks in after every run, and silence raises the alarm.
It is the only monitoring shape that catches a backup which stopped existing, because a job that no longer runs cannot report its own absence.
Wiring one up
Each backup you watch gets a unique ping URL. Add one line to the end of the job. A check-in on success, /fail on error.
your_backup_command \ && curl -fsS -m 10 --retry 3 PING_URL -d "bytes=$SIZE&files=$COUNT" \ || curl -fsS -m 10 PING_URL/fail
Set the period to the schedule you expect, nightly for most backups, and a grace window for slow runs. When nothing arrives within period plus grace, one email names the gap. An explicit /fail alerts immediately. One recovery notice when check-ins resume, and no repeats in between.
No agent, and the backup logic stays exactly as it is. If the job can run one command when it finishes, it can report in. Tool-specific recipes for restic, borgmatic, pg_dump, mysqldump, Veeam and rsync are in the docs, and there is a full restic guide at Monitor restic backups.
The failures it catches
The cron line commented out during maintenance and never uncommented. The host rebuilt without the job. The schedule that stopped firing after a timezone change. The credential that expired a month ago. None of these produce an error, and all of them produce silence. Teams find them when they need the backup, which is the one moment they cannot afford to.
Where a plain switch stops
A dead man's switch proves the job ran. It cannot tell an empty dump from a good one, because both exit 0 and both check in on time. That is why the check-in above carries numbers, size and file count on the same curl line, duration if you send it. After 7 runs Lastcopy has learned the job's normal, and a run that succeeds looking wrong raises an anomaly with the evidence in the email. The nightly dump that normally writes 2 GB and suddenly writes 40 KB gets caught the morning it happens, without a threshold ever being set.
The record it leaves
Every check-in, failure, verification and restore drill becomes a timestamped row on a register with no edit function. When someone asks how you know the backups run, the answer is an evidence report rather than a story. The compliance page covers how the register maps to ISO 27001 and SOC 2, and the sample report shows the page an auditor gets.