Cron job monitoring

Never lose a backup silently.

Your job pings Uptimecheck when it runs. When the ping is late, the job fails or a run takes too long, you get an alert, before anyone needs last night’s backup.

14-day free trial · No credit card required

4.9/5 from 1,247+ reviews Trusted by 65,000+ companies
01

One request to set up

Add a GET or POST to the end of your script. No agent, no SDK, any language that can make an HTTP request.

02

The schedule you already have

Paste the crontab expression and pick your time zone, daylight saving included. The form shows the next runs as you type.

03

Failures with the evidence

Report the exit code and post the job’s output. A failed run is an alert right away, with the output in the alert.

//_01 In depth

How cron job monitoring with heartbeats works

Cron jobs fail quietly. A backup script runs out of disk at 02:00, an invoice export throws an exception, a server reboots and the crontab never runs again. Nothing goes down, nothing returns a 500, and nobody notices until a customer asks for an invoice or you need to restore a database.

Uptimecheck monitors scheduled jobs with heartbeats. Instead of checking your job from the outside, the job checks in with us.

Set up a cron job monitor in three steps

  • Create a cron job monitor and give it the schedule your job runs on: a crontab expression such as 0 3 * * * in your time zone, or a simple period such as every hour.
  • Copy the ping URL.
  • Add one request at the end of your job, after the work succeeds: backup.sh && curl -fsS https://your-ping-url.

If no ping arrives within the expected time plus the grace period you choose, from 1 minute to 6 hours, the cron job counts as down and alerts go to your channels. When the job runs again, a recovery notice follows. Our guide on how to monitor cron jobs covers schedules, grace periods and common mistakes, and cron expressions explained helps with the syntax.

More than “it ran”

  • Start and finish: call /start when the job begins and the normal ping URL when it ends, and you see how long every run took.
  • Maximum run time: get an alert when a run that started has not finished in time, with a limit from 1 minute to 24 hours.
  • Exit codes: call /fail, or the exit code itself such as /1, to report a failure right away instead of waiting for a ping that never comes.
  • Output: POST the job’s output and it is shown with failures and in the alert, so you can read the error without logging in to the server.

What to monitor with cron jobs

  • Database and file backups.
  • Nightly imports, exports and report generation.
  • Queue workers and scheduled tasks in Laravel, Rails or Django.
  • Certificate renewal scripts.
  • Billing runs and invoice emails.
  • Data syncs between systems.

Ping on success, or send the exit code

Put the finish request after the work, chained so it only runs if the job exits cleanly. A job that starts but crashes halfway then shows up as missing, which is exactly what you want to know. Better still, send the exit code: backup.sh; curl -fsS https://your-ping-url/$? reports success or failure either way, and the failure arrives the moment it happens.

Cron jobs next to the rest of your stack

A failed backup is often a symptom. The disk filled up, the database server rebooted or a DNS record changed. Cron jobs sit in the same account as server monitoring and uptime monitoring, so you see the full disk and the missed job side by side.

Heartbeats beyond cron

Anything that runs on a schedule can send a heartbeat: a Windows scheduled task, a Kubernetes CronJob, a GitHub Actions workflow, a serverless function on a timer or a long-running worker that reports in every few minutes. If it can make an HTTP request, it can tell Uptimecheck it is alive. The request is plain HTTPS, so it works through most firewalls without extra configuration.

Start includes 10 cron jobs, Professional 50 and Business 150. Alerts go to email, Slack, Microsoft Teams, Discord, Google Chat, Mattermost, Telegram, PagerDuty, ntfy, Pushover, webhooks and push notifications on every plan.

Plans start at €9 per month billed yearly or €12 billed monthly, excl. VAT. See the pricing page for details, or start a 14-day free trial without a card.

“I began using UptimeCheck a few months ago and was very impressed with everything. Setting up the service took me no time at all. All I had to do was enter my site URL and my channels, choose 'yes' for notifications, and I was done!”

Jonas Karlsson

CTO

Cron job monitoring questions

Do I need to install anything for cron job monitoring?

No. Your job sends a GET or POST request to its ping URL. Any language or tool that can make an HTTP request works, including curl and wget.

When do I get an alert?

When the expected ping does not arrive within the schedule plus the grace period, when the job reports a failure or a non-zero exit code, or when a started run takes longer than the maximum run time. You get a recovery notice when the job checks in again.

Can I use my crontab schedule?

Yes. Enter the five-field crontab expression and the time zone it runs in, daylight saving included.

Should the job ping at the start or at the end?

At the end, after the work succeeds. Add a ping to /start as well if you want run times and an alert when a run takes too long.

How many cron jobs are included?

10 on Start, 50 on Professional and 150 on Business.

Guides on cron job monitoring

All guides

Guides 6 min read

How to Monitor Cron Jobs with Heartbeats

Cron jobs fail silently. A heartbeat monitor alerts you when a scheduled job does not check in on time. How heartbeats work, how to add one to a crontab and which settings to choose.

Read

Works well with

Server monitoring

CPU, memory, disk, network and reboots on Linux, macOS and Windows.

Learn more

API monitoring

Custom methods, headers and bodies, with JSON checks for every endpoint.

Learn more

Alerts and notifications

Slack, Teams, email, push to your phone and more, with escalation and recovery notices.

Learn more

Downtime is obsolete.

Set up your first monitor in under a minute, or look around the live demo first.

14-day free trial · No credit card required

Start free trial