Cron Job Monitoring
Cron job monitoring that takes one curl command.
PingCron watches for missed check-ins from your scheduled jobs and alerts you when something stops running. No agents, no infrastructure overhaul, no SDK to install.
5 monitors free · No credit card · Live in under 60 seconds
Cron jobs usually fail quietly.
Cron's only job is to start a command at a scheduled time. It does not check whether the command finished. It does not check whether the script exited cleanly. It does not check whether your job actually did anything useful.
Jobs stop running for dozens of reasons — server reboots without restarting the cron service, permission changes after a deploy, expired API credentials, broken scripts after a dependency update, missing environment variables in cron's limited context, network timeouts mid-run, disk-full conditions, hit rate limits.
Without monitoring, you find out from a customer. Or from missing data. Or from a 3 AM page when something downstream finally breaks.
Common silent failures cron alone won't catch:
- Backup script exits early due to disk-full or permission errors
- Server rebooted and the cron daemon didn't restart
- Deploy changed an environment variable cron doesn't have access to
- API credentials expired and the script silently aborts
- Hit a third-party rate limit halfway through processing
- Dependency update broke compatibility, script now throws on import
Setup
Add monitoring to any cron job in one line.
PingCron expects the URL to be hit on schedule. If the check-in is missed beyond the grace period, it sends an alert.
Before
0 2 * * * /scripts/backup.sh
After
0 2 * * * /scripts/backup.sh && curl -fsS https://api.pingcron.io/ping/abc123
The && operator ensures the ping only fires if the script succeeded. To report failures explicitly, ping /fail in your error handler — that triggers an instant alert without waiting for the grace period.
What can you monitor?
Any scheduled job, script, or recurring task.
Database backups
Nightly dumps that need to actually run.
Billing reconciliation
Daily jobs that catch payment failures.
ETL / data sync
Hourly pipelines feeding your warehouse.
Report generation
Scheduled reports stakeholders rely on.
Scrapers
Data collectors that need to keep running.
Cleanup scripts
Disk cleanup, log rotation, cache eviction.
Laravel scheduler
artisan schedule:run that must fire every minute.
Python and Node scripts
Cron-driven scripts in any language.
How it works
Four steps. About a minute total.
Create a monitor
Name your monitor and pick what you want to protect.
Choose the expected interval
Every minute, every 5 minutes, hourly, daily — whatever your job runs on. Add a grace period to avoid false alarms on slow runs.
Add the generated ping URL to your job
One curl command at the end of your script. Works with bash, Python, Node, PHP, Go, Ruby, Laravel — anything that can make an HTTP request.
Receive alerts when a ping is missed
Email, Slack, Discord, or webhook. Configure multiple channels per monitor.
Alerts where you'll actually see them.
Configure as many channels as you want per monitor.
HTML alerts with monitor details and direct links.
Slack
Post to any Slack channel via incoming webhook.
Discord
Native Discord webhook integration.
Custom webhooks
POST alerts to any endpoint with full payload.
FAQ
Start monitoring your next cron job in under 60 seconds.
Add one line to your script. Get alerted when it stops running.
Start monitoring free5 monitors free · No credit card · Live in under 60 seconds