Cron, a name derived from “Chronos”, the greek word for “time”,  is a utility program for UNIX-based operating systems like Linux. Essentially, Cron is a time-based process scheduler used to automatically run repetitive commands at fixed times.

In other words, Cron makes things happen by themselves at specified times. These things, or commands, are known as “Cron Jobs”.

While traditionally used for automating system maintenance and administration (monitoring disk space, automating backups), Cron can be utilized for a wide variety of other purposes: automatically downloading files and emails, downloading software updates, sending reports and invoices or other possibly more creative uses.

Run and Monitor Scheduled Tasks on your Favorite Apps
Cron To Go simplifies the monitoring, alerting, and management of your cron jobs' performance, uptime, and status - ensuring seamless operation.
Try Cron To Go for free!

Cron expression meaning: cron expressions defined

Cron jobs are composed of both Cron expressions and the command to run those expressions. Therefore, scheduling tasks in Cron requires one to master the great art of writing Cron expressions.

What are cron expressions?

Cron expressions are, in most cases, a string of five fields, which make up the building blocks of every Cron expression. Each field represents a specific time unit, so that the different fields represent minutes, hours, days of the month, months, and days of the week respectively:

Cron Expression Syntax
Cron cheatsheet

Fields can be comprised of the following values:

Single input

Single inputs are basic numeric values (or names of days or months) which designate a specific time. For example, 2 in the hour field would designate 2 am.

Range

Ranges consist of two values separated by a dash. Every single value between these two values is represented by the range. For example, a range of 0-30 expresses all the numbers between 0-30, including both 0 and 30.

Any - *

An asterisk (or a star) - * -  represents all the possible values in a range for the field. For instance, an asterisk in the “minute” field represents all the possible inputs for said field, or in other words, every minute.

Range/step

The range/step is made up of a range and a “step” value separated by a slash (e.g. 0-30/6). An asterisk can also be used instead of a range to represent all the possible inputs in the field (e.g. */5). Every step represents a value to skip within the range: */5 in the minute field means every 5 minutes, 0-30/6 means every 6 minutes between minute 0 and 30 - that is, minutes 0, 6, 12, 18, 24 and 30.

List

Lists are a series of different values or ranges separated by commas (e.g. 0,10,30-35). Lists come in handy when trying to schedule tasks for certain times. If you wish to schedule a task for, let’s say, both Sunday and Thursday, then you could use a list. Remember not to add spaces between values and commas as space is used to separate between the different fields.


cron expressions definition
Cron expressions can be...well...scary.

Expressing time with cron expressions

Cron expressions are designed so that there is a certain number of valid inputs for every field. In other words, There is a limited number of  values that Cron is able to comprehend. These values change according to the field in which they are written:

Minute

The Minute field is the smallest time field available in Cron. It can receive any input ranging from 0 to 59, with each input representing a specific minute. For example:

* * * * * - Every minute
*/15 * * * * - Every 15th minute (i.e. xx:00, xx:15, xx:30, xx:45). This can also be expressed by using a list:
0,15,30,45 * * * *

Hour

Any input from 0-23 is valid in the Hour field. For example:

0 * * * * - Every  hour
45 * * * * - Hourly, at 45 minutes past the hour
0 0 * * * - Every midnight
0 */2 * * * - Every two hours

Day of month

Any input ranging between 1-31 would work in the Day of the Month field. This field designates the days of the month on which the job will run. For example:

0 9 10,15 * * - At 9am on every 10th and 15th of the month

Month

Both JAN-DEC and their numeric counterparts, 1-12, are valid inputs in the Month field. This field schedules the job to run only on the assigned month or months, in conjunction with the other fields. More examples follow:

* * * 4 * - At every minute in April
0 9 1 */2 * - At 9AM on the first day of every second month

Day of week

As in the Month field, the Day of Week field has two possible types of values: 0-7 (with both 0 and 7 representing Sunday) and SUN-SAT. To illustrate the usage of the last field:

0 9 * * 1-5 - Every weekday (Monday through Friday) at 9AM
0 9 * * 6,0 - Every weekend - Saturday and Sunday at 9AM

However, a thing to note about both the Day of Week and the Day of Month fields is that the Cron job will be triggered if one of these fields is true, even if the other is not.

0 0 13 * 5 stands for every Friday and every 13th of the month. This feature is completely unique to the Day of Week and Day of Month fields.

More examples of cron expressions

0 9 1 */3 * -  Every quarter - on the first day of the month at 9AM
0 9,21 * * * - Twice a day - at 9AM and 9PM
*/5 9-17 * * * - Every 5 minutes, during office hours - 9AM-5PM

And in case you ever feel like confusing your colleagues, Cron also allows for some completely unnecessarily complicated commands:

*/5 */2 13 4,8 0,1,2,3,4,6 - Every 5 minutes, every other hour, on every day excluding Friday, and also on the 13th of the month, in April and August.


Why use Cron

Cron is an accurate, flexible, all purpose solution for automating and scheduling tasks. Its preciseness is what sets it apart from other process schedulers.

If you're looking for a reliable and scalable, fully managed cloud scheduler, check out Cron To Go now!

Cron To Go offers:

  1. Fully managed scheduling
  2. Refined and flexible job scheduling
  3. Centralized management
  4. Time zone support
  5. Real-time monitoring and alerts

Cron To Go now offers rate expressions, Read This to learn more.


Frequently asked questions

Frequently Asked Questions

What is the cron expression meaning?

The cron expression meaning refers to the syntax used to define specific times for automated tasks in UNIX-based systems. Each part of the expression represents a time unit, allowing precise scheduling of tasks.

How do I write a cron expression?

Writing a cron expression involves using five fields to specify minute, hour, day of the month, month, and day of the week. For example, 0 0 * * * runs a task every day at midnight.

What are the common uses of cron expressions?

Common uses include automating system maintenance, backups, sending emails, updating software, and running periodic reports. Cron expressions are versatile for various scheduling needs.

Why is understanding cron expression meaning important?

Understanding the cron expression meaning is essential for setting up and managing automated tasks accurately, ensuring tasks run at the desired times without manual intervention.

What tools can help manage cron jobs?

Tools like Cron To Go provide advanced features for monitoring, alerting, and managing cron jobs, making it easier to ensure your tasks run smoothly and efficiently.

Clock mechanism photo by Alexey Sukhariev on Unsplash