crontab - Unix, Linux Command


Advertisements


NAME

crontab - Schedule a command to run at a later time.

SYNOPSIS

crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }

DESCRIPTION

Crontab is the program used to install, deinstall or list the tables used to drive the cron daemon in Vixie Cron. Each user can have their own crontab, and though these are files in /var, they are not intended to be edited directly. If the -u option is given, it specifies the name of the user whose crontab is to be tweaked. If this option is not given, crontab examines "your" crontab, i.e., the crontab of the person executing the command. Note that su can confuse crontab and that if you are running inside of su you should always use the -u option for safety's sake. cron file is used to install a new crontab from some named file or standard input if the pseudo-filename '-' is given.

Cron Table Format

* * * * *  Command_to_execute
-    -
| | | | |
| | | | + Day of week (06) (Sunday=0) or Sun, Mon, Tue,...
| | | +- Month (112) or Jan, Feb,...
| | +- Day of month (131)
| + Hour (023)
+- Minute (059)

Specifying multiple values in a field

  • The asterisk (*) operator specifies all possible values for a field. e.g. every hour or every day.

  • The comma (,) operator specifies a list of values, for example: "1,3,4,7,8".

  • The dash (-) operator specifies a range of values, for example: "1-6", which is equivalent to "1,2,3,4,5,6".

  • The slash (/) operator, can be used to skip a given number of values. For example, "*/3" in the hour time field is equivalent to "0,3,6,9,12,15,18,21"; "*" specifies 'every hour' but the "/3" means that only the first, fourth, seventh...and such values given by "*" are used.

Cron will email to the user all output of the commands it runs, to silence this, redirect the output to a log file or to /dev/null.

EXAMPLES

To run /usr/bin/sample.sh at 12.59 every day and supress the output

59 12 * * * simon /usr/bin/sample.sh > /dev/null 2>&1

To run sample.sh everyday at 9pm (21:00)

0 21 * * * sample.sh 1>/dev/null 2>&1

To run sample.sh every Tuesday to Saturday at 1am (01:00)

0 1 * * 2-7 sample.sh 1>/dev/null 2>&1

To run sample.sh at 07:30, 09:30 13:30 and 15:30

30 07,09,13,15 * * * sample.sh


Advertisements