Get alerted when a database backup silently stops

The worst time to learn your nightly backup has been failing for three weeks is the moment you need to restore. Backups fail quietly all the time: a full disk, expired credentials, a renamed table, a cron entry that got clobbered on redeploy. Because the failure is silent, the usual "we'll notice if something breaks" never triggers. The fix is to monitor for the absence of a successful backup.

Ping only after a verified-good dump

Chain the ping so it fires only when the dump command actually succeeds — and, ideally, only after you've confirmed the file is non-empty:

#!/bin/sh set -e pg_dump "$DATABASE_URL" | gzip > /backups/db-$(date +%F).sql.gz test -s /backups/db-$(date +%F).sql.gz # fail if empty curl -fsS https://cronping.cronping-oren.workers.dev/ping/<your-check-id> # only reached on success

set -e aborts the script on the first error, so a failed pg_dump or an empty file means the ping is never sent — and Cronping emails you when the daily check goes overdue.

Catch failures the same minute

run-backup.sh || curl -fsS https://cronping.cronping-oren.workers.dev/ping/<id>/fail

This turns a backup that quietly stopped into an alert in your inbox instead of a nasty surprise during a restore. It's free: 20 checks, 1-minute resolution, email + Slack/Discord/webhook, no credit card.

Try it now

Get a ping URL in about ten seconds — no account, no email needed. Add an email later for alerts.

Not sure what it looks like? Watch a 15-second live demo of a check tripping and the alert landing.

Related guides

Monitor an AI agent loop and get alerted when it stops

Monitor a Kubernetes CronJob and know when it stops scheduling

Cron job works manually but fails in crontab (the PATH/environment trap)

Your cron job is not running inside a Docker container

← All guides