While most admins know about crontab, some new folks don’t, so here is a basic primer:
crond runs on most unix machines by default and controls automated tasks for the system based on time. Most boxes have cleanup scripts that run at 4am when processor is low, and thats a good thing.
Cron has two major files, one /etc/crontab which contains system level cron entries, cleanup scripts, and things that are for the system to run, not an individual user. These are runnable as whatever user you want, however generally are root crontabs.
Cron has a funny way of dealing with time…. and thats where most people get screwed up:
the format is as such:
minute hour mday month wday who command
minute is obvious, 5 is :05 or 45 is :45 on the hour.
hour is the same.
mday is the day of the month, for example 1 is the first, 20 is the 20th.. be careful that you don’t schedule things after the 28th, not all months have it.
wday is day of the week, you can schedule 0 as sunday, 1 as monday, and so on, until you hit 6 which is saturday
who is what user it’s run under, this is NOT part of user crons (only system crons in /etc/crontab) it can be any username on the system
command is the command you want cron to run, I suggest using full paths 
There is two other bits of cron trickery stil…
A blank is indicated by a *, not a space. This is a wildcard statement in unix, so it always matches.
The other thing to learn is scheduling multiple times. You can define multiple times either using a comma (,) such as
25,45 * * * * root /usr/libexec/atrun
To run /usr/libexec/atrun at :25 and :45 of the hour, or you can divide time, so every five minutes
*/5 * * * * root /usr/libexec/atrun
When editing crontabs you want to (as root)vi /etc/crontab and change the file, using [ESC] :wq![ENTER] to write the file and then use a HUP command to signal cron to reread it’s configuration (killall -HUP crond works, it’s a bit generic)
Users can have personal crons as well, they can be edited by doing the command
crontab -e [enter] and using
[ESC]:wq![ENTER] to quit
and then using the format WITHOUT a “who” username.
an example:
*/5 * * * * /usr/libexec/atrun
To run /usr/libexec/atrun every 5 minutes.