|
|
发表于 2006-7-5 10:28:54
|
显示全部楼层
- CRONTAB(5) CRONTAB(5)
- NAME
- crontab - tables for driving cron (ISC Cron V4.1)
- DESCRIPTION
- A crontab file contains instructions to the cron(8) daemon of the general form: ''run this command at this time on
- this date''. Each user has their own crontab, and commands in any given crontab will be executed as the user who
- owns the crontab. Uucp and News will usually have their own crontabs, eliminating the need for explicitly running
- su(1) as part of a cron command.
- Blank lines and leading spaces and tabs are ignored. Lines whose first non-space character is a pound-sign (#)
- are comments, and are ignored. Note that comments are not allowed on the same line as cron commands, since they
- will be taken to be part of the command. Similarly, comments are not allowed on the same line as environment
- variable settings.
- An active line in a crontab will be either an environment setting or a cron command. An environment setting is of
- the form,
- name = value
- where the spaces around the equal-sign (=) are optional, and any subsequent non-leading spaces in value will be
- part of the value assigned to name. The value string may be placed in quotes (single or double, but matching) to
- preserve leading or trailing blanks.
- Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOG-
- NAME and HOME are set from the /etc/passwd line of the crontab's owner. HOME and SHELL may be overridden by set-
- tings in the crontab; LOGNAME may not.
- (Another note: the LOGNAME variable is sometimes called USER on BSD systems... on these systems, USER will be set
- also.)
- In addition to LOGNAME, HOME, and SHELL, cron(8) will look at MAILTO if it has any reason to send mail as a result
- of running commands in ''this'' crontab. If MAILTO is defined (and non-empty), mail is sent to the user so named.
- If MAILTO is defined but empty (MAILTO=""), no mail will be sent. Otherwise mail is sent to the owner of the
- crontab. This option is useful if you decide on /bin/mail instead of /usr/lib/sendmail as your mailer when you
- install cron -- /bin/mail doesn't do aliasing, and UUCP usually doesn't read its mail.
- The format of a cron command is very much the V7 standard, with a number of upward-compatible extensions. Each
- line has five time and date fields, followed by a user name if this is the system crontab file, followed by a com-
- mand. Commands are executed by cron(8) when the minute, hour, and month of year fields match the current time,
- and at least one of the two day fields (day of month, or day of week) match the current time (see ''Note'' below).
- Note that this means that non-existent times, such as "missing hours" during daylight savings conversion, will
- never match, causing jobs scheduled during the "missing times" not to be run. Similarly, times that occur more
- than once (again, during daylight savings conversion) will cause matching jobs to be run twice.
- cron(8) examines cron entries once every minute.
- 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 exe-
- cution 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''.
- Names can also be used for the ''month'' and ''day of week'' fields. Use the first three letters of the particu-
- lar day or month (case doesn't matter). Ranges or lists of names are not allowed.
- 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 cronfile. Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into new-
- line characters, and all data after the first % will be sent to the command as standard input.
- 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 (ie, aren't *), 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.
- EXAMPLE CRON FILE
- # use /bin/sh to run commands, no matter what /etc/passwd says
- SHELL=/bin/sh
- # mail any output to 'paul', no matter whose crontab this is
- MAILTO=paul
- #
- # run five minutes after midnight, every day
- 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
- # run at 2:15pm on the first of every month -- output mailed to paul
- 15 14 1 * * $HOME/bin/monthly
- # run at 10 pm on weekdays, annoy Joe
- 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
- 23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
- 5 4 * * sun echo "run at 5 after 4 every sunday"
- FILES
- /etc/crontab System crontab file
- SEE ALSO
- cron(8), crontab(1)
- EXTENSIONS
- When specifying day of week, both day 0 and day 7 will be considered Sunday. BSD and ATT seem to disagree about
- this.
- Lists and ranges are allowed to co-exist in the same field. "1-3,7-9" would be rejected by ATT or BSD cron --
- they want to see "1-3" or "7,8,9" ONLY.
- Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
- Names of months or days of the week can be specified by name.
- Environment variables can be set in the crontab. In BSD or ATT, the environment handed to child processes is
- basically the one from /etc/rc.
- Command output is mailed to the crontab owner (BSD can't do this), can be mailed to a person other than the
- crontab owner (SysV can't do this), or the feature can be turned off and no mail will be sent at all (SysV can't
- do this either).
- These special time specification "nicknames" are supported, which replace the 5 initial time and date fields, and
- are prefixed by the '@' character:
- @reboot : Run once, at startup.
- @yearly : Run once a year, ie. "0 0 1 1 *".
- @annually : Run once a year, ie. "0 0 1 1 *".
- @monthly : Run once a month, ie. "0 0 1 * *".
- @weekly : Run once a week, ie. "0 0 * * 0".
- @daily : Run once a day, ie. "0 0 * * *".
- @hourly : Run once an hour, ie. "0 * * * *".
- CAVEATS
- In this version of cron, /etc/crontab must not be writable by any user other than root. No crontab files may be
- links, or linked to by any other file. No crontab files may be executable, or be writable by any user other than
- their owner.
- AUTHOR
- Paul Vixie <vixie@isc.org>
- 4th Berkeley Distribution 24 January 1994 CRONTAB(5)
复制代码 |
|