Setting up Cron Jobs

cron is a Linux system daemon that will execute a program at a preset time. To use cron, log in as the user that cron needs to run as, and execute the following command in the terminal:

crontab -e

Here is the format of a cron job file:

[min] [hour] [day of month] [month] [day of week] [program to be run]

where each field is defined as

[min]

Minutes that program should be executed on. 0-59. Do not set as * or the program will be run once a minute.

[hour]

Hour that program should be executed on. 0-23. * for every hour.

[day of month]

Day of the month that process should be executed on. 1-31. * for every day.

[month]

Month that program whould be executed on. 1-12 * for every month.

[day of week]

Day of the week. 0-6 where Sunday = 0, Monday = 1, …., Saturday = 6. * for every day of the week.

[program]

Program to be executed. Include full path information.

Here are some examples:

0,15,30,45 * * * * /usr/bin/foo

Will run /usr/bin/foo every 15 minutes on every hour, day-of-month, month, and day-of-week. In other words, it will run every 15 minutes for as long as the machine it running.

10 3 * * * /usr/bin/foo

Will run /usr/bin/foo at 3:10am on every day.

10 * 1 * * /usr/bin/foo

Will run /usr/bin/foo at 12:10am on the first day of the month.

10 * * 1 * /usr/bin/foo

Will run /usr/bin/foo at 12:10am on the first month of the year.

10 14 * * 1 /usr/bin/foo

Will run /usr/bin/foo at 2:10pm on every Monday.

There are more options for these. See man man crontab -S 5.

You must use crontab to load cron jobs into cron. First create a text file that uses the above rule to describe the cron job that you want to load into cron. But before you load it, type crontab -l to list any jobs that are currently loaded in crontab.

If none are listed, then it is safe to load your job. Example. If you wanted to run /usr/local/bin/foo once a day at 3:10am, then create a text file

10 3 * * * /usr/bin/foo