Monitorea tus backups de base de datos

Recibe una alerta en el momento en que un backup nocturno no se ejecuta — en lugar de descubrirlo durante una restauración.

El problema

Los backups son el fallo silencioso clásico. El cron job corre, el dump falla — disco lleno, credenciales expiradas, un corte de red — y nada te lo dice. Te enteras semanas después, en pleno incidente, cuando la restauración que necesitas desesperadamente resulta estar vacía o directamente no existe.

Cómo lo resuelve SteadyCron

  1. 1 Crea un heartbeat check que coincida con tu planificación de backups (p. ej. a diario a las 02:00) y define un período de gracia que absorba la varianza normal.
  2. 2 Al final de tu script de backup, haz ping a SteadyCron si hay éxito — y explícitamente si hay fallo, en caso de que el comando dump devuelva un error.
  3. 3 Si el ping de éxito no llega dentro del período de gracia, SteadyCron te alerta por email, Slack, Discord, Telegram o webhook.
#!/usr/bin/env bash
TOKEN=<tu-ping-token>
if pg_dump "$DATABASE_URL" | zstd | age -r "$KEY" > /backups/db.sql.zst.age; then
  curl -fsS https://ping.steadycron.com/$TOKEN
else
  curl -fsS https://ping.steadycron.com/$TOKEN/fail
fi
app.steadycron.com/jobs

Jobs

New job
Search jobs…
All HTTP Heartbeat
Status Group: env
env:prod 5 jobs 1 failing
weekly-digest-email HTTP 0 9 * * 1 in 2 days 3 days ago
nightly-db-backup Heartbeat 0 2 * * * in 19 h 5 h ago
stripe-reconciliation HTTP 0 */4 * * * in 38 min 3 h ago
cache-warmup HTTP */15 * * * * in 11 min now
search-index-sync Heartbeat */30 * * * * in 6 min 24 min ago
env:dev 3 jobs
seed-test-data HTTP 0 4 * * * in 14 h 10 h ago
preview-env-cleanup Heartbeat 0 */6 * * * in 2 h 4 h ago
trial-expiry-sweep HTTP 0 6 * * * yesterday

Estado, horario y última ejecución de cada job — de un vistazo.

Por qué un heartbeat y no solo un código de salida

El código de salida de tu script solo importa si algo lo está observando — y en una VM aislada, nada lo hace. Un heartbeat desplaza la pregunta “¿corrió?” fuera de la máquina que podría estar caída. Si el servidor se reinicia, el disco se llena o cron está mal configurado, el ping simplemente no llega nunca, y SteadyCron te lo comunica.

Detecta también los backups bloqueados

Envía un ping /start al inicio del script. Si un backup empieza pero nunca envía su /success o /fail — porque se bloqueó en un lock o se quedó sin memoria — SteadyCron marca la ejecución como bloqueada, no solo como tardía.

Documentación relacionada

Deja de enterarte a las malas

Empieza en el plan gratuito — sin tarjeta de crédito.

Empezar gratis