Article taken from http://kevin.vanzonneveld.net/techblog/article/schedule_tasks_on_linux_using_crontab/
Crontab
The crontab (cron derives from chronos, Greek for time; tab stands for table)
command, found in Unix and Unix-like operating systems, is used to
schedule commands to be executed periodically. To see what crontabs are
currently running on your system, you can open a terminal and run: Scheduling explained
As you can see there are 5 stars. The stars represent different date parts in the following order:
minute (from 0 to 59) hour (from 0 to 23) day of month (from 1 to 31) month (from 1 to 12) day of week (from 0 to 6) (0=Sunday) If you leave the star, or asterisk, it means every. Maybe that's a bit unclear. Let's use the the previous example again: They are all still asterisks! So this means execute /bin/execute/this/script.sh: every minute of every hour of every day of the month of every month and every day in the week. Get it? The script is now being executed when the system clock hits: minute: 0 of hour: 1 of day of month: * (every day of month) of month: * (every month) and weekday: 5 (=Friday) Here's another one, just for practicing Fair enough, it takes some getting used to, but it offers great flexibility.sudo crontab -l
To edit the list of cronjobs you can run:
sudo crontab -e
This wil open a the default editor. Cronjobs are written in the following format:
* * * * * /bin/execute/this/script.sh
Execute every minute
* * * * * /bin/execute/this/script.sh
In short: This script is being executed every minute. Without exception.
Execute every Friday 1AM
So if we want to schedule the script to run at 1AM every Friday, we would need the following cronjob:
0 1 * * 5 /bin/execute/this/script.sh
Execute 10 past after every hour on the 1st of every month
10 * 1 * * /bin/execute/this/script.sh