Difference between revisions of "Cron Notes"

From Noah.org
Jump to navigationJump to search
m
Line 11: Line 11:
 
#    month          1-12 (or names, see below)
 
#    month          1-12 (or names, see below)
 
#    day of week    0-7 (0 or 7 is Sun, or use names)
 
#    day of week    0-7 (0 or 7 is Sun, or use names)
# A field may be an asterisk (*), which always stands for ''first-last''.
+
# A field may be an asterisk (*), which always stands for "first-last".
 
#  
 
#  
 
# Ranges of numbers are allowed. Ranges are two numbers separated with a hyphen.
 
# Ranges of numbers are allowed. Ranges are two numbers separated with a hyphen.
# The specified range is inclusive. For example, 8-11 for an ''hours'' entry
+
# The specified range is inclusive. For example, 8-11 for an "hours" entry
 
# specifies execution at hours 8, 9, 10 and 11.
 
# specifies execution at hours 8, 9, 10 and 11.
 
#  
 
#  
 
# Lists are allowed.  A list is a set of numbers (or ranges) separated by commas.
 
# Lists are allowed.  A list is a set of numbers (or ranges) separated by commas.
# Examples: ''1,2,5,9'', ''0-4,8-12''.
+
# Examples: "1,2,5,9", "0-4,8-12".
 
#  
 
#  
 
# Step values can be used in conjunction with ranges. Following a range with
 
# Step values can be used in conjunction with ranges. Following a range with
# ''/<number>'' specifies  skips of the number's value through the range.  
+
# "/<number>" specifies  skips of the number's value through the range.  
# For example, ''0-23/2'' can be used in the hours field to specify command
+
# For example, "0-23/2" can be used in the hours field to specify command
 
# execution every other hour (the alternative in the V7 standard is
 
# execution every other hour (the alternative in the V7 standard is
# ''0,2,4,6,8,10,12,14,16,18,20,22''). Steps are also permitted after an
+
# "0,2,4,6,8,10,12,14,16,18,20,22"). Steps are also permitted after an
# asterisk, so if you want to say ''every two hours'', just use ''*/2''.
+
# asterisk, so if you want to say "every two hours", just use "*/2".
 +
# Note:  The  day of a command's execution can be specified by two fields
 +
# -- day of month, and day of week.  If both fields are restricted
 +
# (that is, are not  *),  the command will be run when either field matches the
 +
# current time.  For example, "30 4 1,15 * 5" would cause a command
 +
# to be run at 4:30 am on the 1st and 15th of each month, plus every Friday.
 +
#
 +
# The "sixth" field (the rest of the line) specifies the command to be
 +
# run. The entire command portion of the line, up to a newline or %
 +
# character, will be executed by /bin/sh or by the shell specified in the
 +
# SHELL variable of the crontab file. Percent-signs (%) in the command,
 +
# unless escaped with backslash (\), will be changed into newline characters,
 +
# and all data after the first % will be sent to the command as standard input.
 +
# There is no way to split a single command line onto multiple lines,
 +
# ala the shell's trailing "\".
 
#
 
#
 
# Example system /etc/crontab excerpt:
 
# Example system /etc/crontab excerpt:
 
#      # run five minutes after midnight, every day
 
#      # run five minutes after midnight, every day
#      5 0 * * *      root $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
+
#      5 0 * * *      root /usr/sbin/ntpdate time.nist.gov >> /var/log/ntpdate.log 2>&1
#      # run at 2:15pm on the first of every month -- output mailed to paul
+
#      # run at 2:15pm on the first of every month
#      15 14 1 * *    root $HOME/bin/monthly
+
#      15 14 1 * *    root /bin/foo > /dev/null 2>&1
#      # run at 10 pm on weekdays, annoy Joe
+
#      # run at 11 pm on weekdays
#      0 22 * * 1-5    root mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
+
#      0 23 * * 1-5    root mail -s "It's 11pm" joe%Joe,%%Where are your kids?%
 
#      23 0-23/2 * * * root echo "run 23 minutes after midn, 2am, 4am ..., everyday"
 
#      23 0-23/2 * * * root echo "run 23 minutes after midn, 2am, 4am ..., everyday"
 
#      5 4 * * sun    root echo "run at 5 after 4 every sunday"
 
#      5 4 * * sun    root echo "run at 5 after 4 every sunday"
 
</pre>
 
</pre>

Revision as of 19:31, 31 January 2007

I have huge, horrible, complex cron files. I stick this big comment at the top of the /etc/crontab file so I don't have to keep going back to the man page.

# The time and date fields are:
#     field          allowed values
#     -----          --------------
#     minute         0-59
#     hour           0-23
#     day of month   1-31
#     month          1-12 (or names, see below)
#     day of week    0-7 (0 or 7 is Sun, or use names)
# A field may be an asterisk (*), which always stands for "first-last".
# 
# Ranges of numbers are allowed. Ranges are two numbers separated with a hyphen.
# The specified range is inclusive. For example, 8-11 for an "hours" entry
# specifies execution at hours 8, 9, 10 and 11.
# 
# Lists are allowed.  A list is a set of numbers (or ranges) separated by commas.
# Examples: "1,2,5,9", "0-4,8-12".
# 
# Step values can be used in conjunction with ranges. Following a range with
# "/<number>" specifies  skips of the number's value through the range. 
# For example, "0-23/2" can be used in the hours field to specify command
# execution every other hour (the alternative in the V7 standard is
# "0,2,4,6,8,10,12,14,16,18,20,22"). Steps are also permitted after an
# asterisk, so if you want to say "every two hours", just use "*/2".
# Note:  The  day of a command's execution can be specified by two fields
# -- day of month, and day of week.  If both fields are restricted 
# (that is, are not  *),  the command will be run when either field matches the 
# current time.  For example, "30 4 1,15 * 5" would cause a command 
# to be run at 4:30 am on the 1st and 15th of each month, plus every Friday.
#
# The "sixth" field (the rest of the line) specifies the command to be
# run. The entire command portion of the line, up to a newline or %
# character, will be executed by /bin/sh or by the shell specified in the
# SHELL variable of the crontab file. Percent-signs (%) in the command,
# unless escaped with backslash (\), will be changed into newline characters, 
# and all data after the first % will be sent to the command as standard input. 
# There is no way to split a single command line onto multiple lines, 
# ala the shell's trailing "\".
#
# Example system /etc/crontab excerpt:
#      # run five minutes after midnight, every day
#      5 0 * * *       root /usr/sbin/ntpdate time.nist.gov >> /var/log/ntpdate.log 2>&1
#      # run at 2:15pm on the first of every month
#      15 14 1 * *     root /bin/foo > /dev/null 2>&1
#      # run at 11 pm on weekdays
#      0 23 * * 1-5    root mail -s "It's 11pm" joe%Joe,%%Where are your kids?%
#      23 0-23/2 * * * root echo "run 23 minutes after midn, 2am, 4am ..., everyday"
#      5 4 * * sun     root echo "run at 5 after 4 every sunday"