t hegeekscope.com http://www.thegeekscope.com/linux-cron-job-scheduler/
Linux Cron Job Scheduler
by KAM on September 4, 2012
cron is the standard job scheduler in Linux. Cron allows to schedule the job with a resolution from
every minute to every month. For example, if you want to carry out a task on every 14th day of the
month at 02:50 hrs, you can schedule this in cron and cron will do it automatically for you without
The cron maintains the scheduled jobs in the crontab file. cron daemon (crond) scans the crontab
file every minute to see whether it’s the time to do something or stay idle.
You can view the scheduled jobs by listing the entries of crontab as shown below.
Use ‘-e’ option for editing the crontab.
Each entry in the crontab corresponds to a scheduled job and has a specific format. A scheduled
job is also sometimes referred to as cronjob. Following is a typical cronjob entry to periodically
delete all log files from /opt folder every minute.
* * * * * rm -f /opt/*.log
In this cronjob the first five stars represent a particular schedule followed by the command to be
executed at the scheduled time. The five stars are nothing but the five place holders for schedule
and * is just one of the possible value. Have a look at the following figure.
Each field may contain a modifier with a special meaning. Following are the list of modifiers.
Asterisk (*) : All Values
Asterisk (*) has a special meaning. It signifies that the job should be executed for all
possible values of the corresponding field.
For example, ‘*’ for the minute specifies that the job should be executed every minute.
Range (-) : Multiple Contiguous Values
Range modifier is used to specify the range of values.
For example, value ’1-5′ for month specifies that the job should be executed for only first
five months (January – May).
List (,) : Multiple Non-contiguous Values
List modifier is used to specify multiple Non-contiguous values.
For example, value ’1,25′ for days of month signifies that the job should be executed only
on the 1st day and the 25th day of the month.
Step Modifier ( /) : Specifies Step Size
Step modifier is used to indicate the unit of increments between values.
For example, a value ‘*/15′ for minute signifies that the job should be executed every 0th,
15th, 30th and 45th minutes of an hour.
Note: This is also possible to specify multiple modifiers for each field.
Procedure to add a cronjob
Let’s say that we want to schedule a job to execute a script named purge_log.sh every minute for
all 365 days. The script accepts the name of the folder as an argument. Follow the steps given
below to schedule this job.
open the crontab file in edit mode.
# crontab -e
Append the new job to the crontab.
* * * * * /root/purge_log.sh /var/log/
Save and close the file. Your new job is scheduled.
You can optionally append ‘ > /dev/null 2>&1‘ at the end of the cronjob as shown below.
* * * * * /root/purge_log.sh /var/log/ > /dev/null 2>&1
Appending ‘ > /dev/null 2>&1‘ to the cronjob prevents sending of emails, reporting standard output
and standard error, to the crontab owner.
1. Schedule a job to execute a command every 10th minute of an hour for only the following
months: January, March and December
*/10 1,3,12 * * * /root/purge_log.sh /var/log/ > /dev/null 2>&1
2. Schedule a job to execute a command at 02:15 hrs on first five days every month.
15 2 1-5 * * /root/purge_log.sh /var/log/ > /dev/null 2>&1
3. Schedule a job to execute a command once every year on 16 July at 14:45 hrs.
14 15 16 7 * /root/purge_log.sh /var/log/ > /dev/null 2>&1
4. Schedule a job to execute a command every hour on all Sundays for the month of December
0 * * 12 0 /root/purge_log.sh /var/log/ > /dev/null 2>&1
Tagged as: cron, cron linux, cronjob, crontab, job scheduler in linux, linux cron, linux job scheduler
Don't Miss a Post ! Subscribe to Our Free Email Newsletter.