Okay - You want to run a program at a certain time everyday or 
perhaps every week and you don't want to have to remember to do it. 
Perhaps you wish to delete a bunch of temporary files, syncronize your 
computer or send out mail notifications. Maybe you hear people talking 
about cronjobs or crontab and you wish to know what it is 
Crontab entries looks complex but they are really simple, infact they 
are as simple as shown below: 


minute hour dayofmonth month dayofweek command_1;command_2;...command_n 

The entries you may have seen look like this: 

17 * * 3 0 cat ~/mail/inbox > ~/old_mail;gzip ~/old_mail 

Well it looks intimidating for someone unfamilar with it, first there
are several numbers, a fairly long UNIX command with a strange~ and then 
another command with another strange ~ Well the first five fields are times
when they events are scheduled to occur and then come the commands. 
The first five fields are in order as shown below: 

1. minute 0-59 
2. hour 0-23 (midnight is zero, 11:00 PM is 23) 
3. dayofmonth 1 - 31 
4. month 1 - 12 
5. dayofweek 0 - 6 (0 is Sunday, 1 is Monday etc.) 

Many times you will see crontab entries that have astericks (*) in them,
these are wildcards, which means that events will occur at any time. 
If you wanted an command to run every minute you could by entering an 
crontab entry that looks like this: 

* * * * * command 

But that is pretty boring, lets have a command that a a bit more practical, 
one nice thing to on a regular basis for me is backup files. I want to do 
this on a monthy basis at 3:00 AM and lets do this on the 15th of every month. 

Here would be my crontab entery would look like this: 

* 3 15 * * cd ~angelm; tar -cf backup.tar *;gzip backup.tar 

Here the hour is 3 AM and the day of month is the 15th and since there 
is an asterick at the other positions they not have any effect. The commands 
seperated by a semi-colon are as follows: 

1. cd to the user angelm' home directory (hence the tilda ~ )
2. create a tar (tape archive) file named backup.tar 
3. compress the tar file with gzip. 

To create any crontab entry the command is 


crontab -e 

and to view ones crontab entries the command is 


crontab -l 

Here is what one looks like, you can have as many as you like, 
each on seperate lines. 


# DO NOT EDIT THIS FILE - edit the master and reinstall. 
# (/tmp/crontab.30483 installed on Mon Jul 15 22:21:01 2002) 
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 
0 * * * * cd /home/angelm/ghclient099_linux; ./ghclient.x -nice 19 > /dev/null 2> /dev/null 
* 3 15 * * cd ~angelm/docs/things/; tar -cf backup.tar * ;gzip backup.tar 

You can only edit and view your own crontab unless you are root.