crontab - 用于计划程序执行的文件 (Linux)
# 语法
usage: crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
2
3
4
5
6
7
-u user
:用来设定指定用户的 crontab 服务;file
:file 是命令文件的名字,表示将 file 做为 crontab 的任务列表文件并载入 crontab。如果在命令行中没有指定这个文件,crontab 命令将接受标准输入(键盘)上键入的命令,并将它们载入 crontab。-e
:编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。-l
:显示某个用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。-r
:从/var/spool/cron
目录中删除某个用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。-i
:在删除用户的 crontab 文件时给确认提示。
# 设置
cron 每分钟检查一次 cron 条目。
cron 命令的格式类似于 V7 标准,带有一个向上兼容扩展的数量。每行有五个时间日期字段,后跟用户名(如果这是系统 crontab 文件),然后是命令。命令由 cron(8)执行,当“分钟”,“小时”和“一年中的月份”字段与当前时间,以及至少两个“天”字段(“月”或“星期几”)匹配当前时间(请参见下面的“注意”)。
请注意,这表示不存在的时间,例如夏令时转换期间的“小时”,将永远不会匹配,导致在“丢失时间”内计划的作业无法运行。同样,发生的时间不止一次(同样,在夏令时转换)将导致运行匹配的作业两次。
时间和日期字段为:
字段 | 允许值 |
---|---|
minute (分钟) | 0-59 |
hour (小时) | 0-23 |
day of month (每月日) | 1-31 |
month (月) | 1-12(或姓名,见下文) |
day of week (星期几) | 0-7(0 或 7 是星期日,或使用名称) |
字段可能包含星号(*),该星号始终代表全部。
允许使用数字范围。范围是两个数字,用 -
连字符。
指定的范围包括端值。例如,对于 8-11 “小时”条目指定在第 8、9、10 和 11 小时执行。
第一个数字必须小于或等于第二个数字。
列表是允许的。列表是一组分开的数字(或范围)用逗号分隔。示例:“1,2,5,9”,“0-4,8-12”。
步长值可以与范围结合使用。跟随一个带“/<数字>”的范围指定数字值范围。 例如,可以在“小时”字段中使用“0-23/2”来指定每隔一小时执行一次命令(在 V7 标准为 “0,2,4,6,8,10,12,14,16,18,20,22”)。 步长值在星号后也可以使用,因此如果指定要每隔两个小时运行一次,可以使用 “*/2”。
名称也可以用于“月”和“星期几”字段。 用特定日期或月份的前三个字母(大小写不限)。 不允许使用名称范围或名称列表。
If the UID of the owner is 0 (root), the first character of a crontab entry can be "-" character. This will prevent cron from writing a syslog message about the command being executed.
“第六个”字段(该行的其余部分)为将运行命令。
该行的整个命令部分,直到换行符或 "%" 字符,将由 /bin/sh
或指定的 shell
执行在 cronfile 的 SHELL 变量中。"%" 字符命令,除非以反斜杠(\)进行转义,否则将更改为换行符,第一个 "%" 之后的所有数据都将发送到该命令作为标准输入。
#
为注释