I’ve just had to explain again to a friend how crontab in Linux works, so rather than explaining it again, I’m going to write it out and just send him the link. In addition to the millions of examples that already exist out there.
So Here it is.
Cron allows you to run scheduled commands on Linux. Each user can have their own crontab running their own commands, within the limits of their user account.
To edit your crontab file, type crontab -e on the command line. It will open in the default editor for your shell. (If I had anything to do with it, this would be nano)
If you have never setup any tasks, you will either have a blank file, or a temp file. either case you can add straight to it. This is
where people get confused. Cron requires a specific layout o tell it when to execute tasks.
The first five columns are used to tell cron when to run, and those columns relate to:
Minuite – Hour – Day Of Month – Month Day Of Week
Each column can be used as multiple entries, so 1,6,30 in the minute column will trigger at 1, 6 and 30 minutes. A / means ever x period, so a /2 in minutes means every 2 minutes.
The last column is the command / script to run when the time is right.
* in the value field above means all legal values as in braces for that column.
The value column can have a * or a list of elements separated by commas. An element is either a number in the ranges shown above or two numbers in the range separated by a hyphen (meaning an inclusive range).
Ok, lets make this a little easier, and show examples.
30 0 1 1,6,12 * command
this will run a command at 00:30 Hrs on 1st of Jan, June & Dec.
30 * * * * command
Will run a command at half past the hour.
Thats the basics of Cron. Dont forget that by default cron emails the results of any command to the user. If you dont want to know, dont forget to add /dev/null 2>&1 to the end of the command.
For more info see this webpage; http://adminschoice.com/crontab-quick-reference
I’ve no doubt some form of GUI exists for editing crontabs, but like most things in Linux, I much prefer to use the command line.