Most web-servers give you the ability to setup and run cron tasks for maintaining your website. These are normally setup from cPanel or equivalent, and is called a webcron.
To list the current crontabs type:
sudo crontab -l
There are a number of characters which have a special meaning when writing a crontab.
|*||The asterisk character matches any occurance of the relevant time field. For example, * in the second field (hour field) will cause it to match every hour.||Works with most versions of cron.|
|-||A hyphen is used to define a range for a time field. For example, 10-45 in the minute field matches every minute in the hour between 10 and 45 (inclusive).||Works with most versions of cron.|
|/||The forward-slash character describes increments of ranges (so is used with the - character.||Works with most versions of cron.|
|,||The comma is used to indicate items of a list. For example, 2001, 2013, 2050 matches the years 2001, 2013 and 2050.||Works with most versions of cron.|
Predefined Timing Words
These are pretty self-explanatory.
|@hourly||Runs once an hour (at the beginning of the hour).||0 * * * *|
|@daily||Runs once an day (at midnight).||0 0 * * *|
|@weekly||Runs once an week (at midnight every Sunday).||0 0 * * 0|
|@monthly||Runs once an month (at midnight on the first day of the month).||0 0 1 * *|
|@yearly (or @annually)||Runs once an year (at midnight on the first day of the year).||0 0 1 1 *|
|@reboot||Runs on reboot. Note that this can either be implemented as running only on reboot (e.g. on Debian systems), or everytime the cron daemon starts (i.e. startup, but could trigger at other times also).||n/a|
By default, cron saves the output to the user’s mailbox. You can save it to a separate logfile instead with the following syntax:
* * * * * shell-command-here >> /var/log/cron-log-file.log 2>&1
This redirects both stdout and stderr to the file cron-log-file.log.