CronFender
A Beginner's Guide to Crontab Syntax: Automating Tasks on Linux and Unix

A Beginner's Guide to Crontab Syntax: Automating Tasks on Linux and Unix

CronFender TeamPublished on July 15, 2025

This guide explains the crontab syntax for automating tasks on Linux and Unix systems, breaking down each field with practical examples and introducing CronFender as a modern, reliable solution for managing scheduled jobs.

Cron jobs are the unsung heroes of system administration, automating repetitive tasks behind the scenes. From running daily backups to sending out scheduled reports, they keep the digital world running smoothly. At the heart of a cron job is its schedule, defined by the "crontab" syntax.

If you've ever felt intimidated by the seemingly random asterisks and numbers, this guide is for you. We'll break down the crontab syntax field by field, provide clear examples, and show you how to master this essential skill.

Understanding the Crontab Schedule

A crontab entry is a single line that tells the cron daemon when to run a command. It consists of five time fields followed by the command to be executed.

Here's the basic structure:

* * * * * /path/to/command

Each asterisk (*) is a placeholder for a time value. Let's break down what each position represents:

PositionFieldAllowed Values
1Minute0-59
2Hour0-23 (24-hour clock)
3Day of Month1-31
4Month1-12 or jan,feb,mar...
5Day of Week0-7 (Sunday is both 0 and 7) or sun,mon,tue...

Pro-Tip: Remember the mnemonic "Minute, Hour, Day-of-month, Month, Day-of-week."

Decoding the Special Characters

To create flexible schedules, you can use special characters in the fields:

  • * (Asterisk): Represents "all" possible values. For example, a * in the "minute" field means "every minute."
  • - (Hyphen): Defines a range of values. 1-5 in the "day of week" field means "Monday through Friday."
  • , (Comma): Separates a list of values. 1,3,5 in the "hour" field means "at 1 AM, 3 AM, and 5 AM."
  • / (Slash): Specifies step values. */15 in the "minute" field means "every 15 minutes." */2 in the "hour" field means "every two hours."

Practical Crontab Examples

Now that you know the syntax, let's look at some real-world examples.

Example 1: Running a script every minute

This is the most basic cron job. The script /home/user/myscript.sh will run once every sixty seconds.

* * * * * /home/user/myscript.sh

Example 2: Running a script daily at 5:30 AM

We specify the minute (30) and the hour (5). The asterisks for the remaining fields mean "every day of the month, every month, every day of the week."

30 5 * * * /home/user/daily-backup.sh

Example 3: Running a script on weekdays at 9:00 PM

We set the hour to 21 and the minute to 0. We use a range 1-5 for the day of the week to specify Monday through Friday.

0 21 * * 1-5 /home/user/weekday-report.sh

Example 4: Running a script on the first day of every month at midnight

We set the minute and hour to 0. The day of the month is set to 1. The asterisks for the remaining fields cover all months and days of the week.

0 0 1 * * /home/user/monthly-clean-up.sh

Example 5: Running a script every 15 minutes

We use the step value */15 in the minute field.

*/15 * * * * /home/user/check-service-status.sh

Simplifying Your Cron Jobs

While crontab is a powerful tool, managing numerous jobs across different servers can become complex and prone to silent failures. It's easy for a scheduled job to fail without you ever knowing, leading to critical data loss or system issues.

This is where a modern solution like CronFender can save you from a lot of headaches. Instead of manually editing crontab files on multiple machines, CronFender gives you a centralized dashboard to manage, monitor, and receive alerts for all your scheduled tasks.

CronFender's key benefits:

  • Centralized Management: See all your jobs in one place.
  • Failure Alerts: Get instant notifications via email, Slack, or other channels when a job fails.
  • Job History: View a complete history of every job run, with detailed logs.

Conclusion

Understanding crontab syntax is a foundational skill for any developer or sysadmin. It provides a simple, yet powerful, way to automate tasks. However, as your needs grow, so does the risk of manual errors and unmonitored failures.

For a robust and reliable way to manage your cron jobs, consider a dedicated service.

Ready to take control of your scheduled tasks? Sign up for CronFender and try it for free!