Wednesday, March 23, 2011

What is cron,crontab & how to use it?

Cron :
is a daemon process which checks the crontab every minute for checking is there any scheduled task to execute. After this checking it goes to sleep and waits for the next minute to wokeup and check the crontab. The cron daemon is one of the bootup process which starts running from the bootup of the system. If you want to check the cron daemon process, issue the following command in terminal

$ps -e | grep cron

Crontab(le) :
is a file which has the entries for scheduled tasks. The entries follows the following syntax.
M H DOM MOY DOW Task(command)
M -> Minute entry. Value range (0-59)
H -> Hour entry Value range (0-23)
DOM -> Day of Month Value range (1-31)
MOY -> Month of the Year Value range (1-12)
DOW -> Day of week Value range (0-6) where 0-Sunday, 1-Monday, ....

Example entry:1

Min Hour DOM MOY DOW Task

*   *    *   *   *   date  >> /tmp/every_minute.txt 

* <- means 'for all' The above entry will works on every minute and just appends the output of the command 'date' into the file '/tmp/every_minute.txt'. By opening the every_minute file in gedit you can see the output on every minute. If you want any other task to automate in the backend or chage the time when it needs to run configure the task entry as your need. Example entry:2
Min Hour DOM MOY DOW Task
30 22 * * * rm -r /tmp/*

The above entry will run everyday night 10.30(22.30) and removes everything from the /tmp/ Directory.

So how edit crontab:
In terminal type the following command
$crontab -e

Now the crontab file will opens in your default terminal editor(Mostly vi or vim). Now just add the Example 1 at the bottom of the file then save and exit.
Now open the /tmp/every_minute.txt file you can see it is updated each minute with the output of the date command.

For more information about cron, crontab
$man cron

$man 5 crontab

Location of files related to Cron :
Files in /var/spool/cron, /var/spool/anacron
Files in /etc/cron* ex. /etc/cront.d/, /etc/cront.weekly/
File /etc/crontab

Details Based on:
BOSS GNU/Linux (And most of the debian derived linux)

1 comment:

karthik4u said...

Dear friends leave your comment regarding my posts. I expect both bouquets, brickbats... that will further polish my writing and blog-posts..

With love,
K. Karthikeyan