输入 Cron 表达式
每隔 5 分钟
取值范围 | 说明 |
---|---|
0-59 | 表示在当前小时的第几分钟执行任务 |
* | 每分钟都执行 |
*/N | 每 N 分钟执行一次(例如,*/5 表示每 5 分钟执行一次) |
M1,M2,... | 指定多个分钟执行(例如,5,10,25 表示在第 5、10 和 25 分钟执行) |
M1-M2 | 指定一个范围内的分钟(例如,10-20 表示从第 10 到第 20 分钟执行) |
概述
Cron 是 Linux 和类 Unix 系统中的一个定时任务调度程序,用于在特定的时间或周期性地执行命令或脚本。
Cron 的任务称为 "cron jobs",这些任务由一个名为 crontab(Cron Table)的文件管理。crontab 文件中包含了任务调度的规则和要执行的命令。
Crontab 文件的格式
一个标准的 crontab 文件由以下几部分组成:
- 分钟(0 - 59)
- 小时(0 - 23)
- 日期(1 - 31)
- 月份(1 - 12)
- 星期几(0 - 7,其中0和7都代表星期日)
后面跟着要执行的命令或脚本路径。
crontab 文件中每一行都代表一个定时任务,格式如下:* * * * * command_to_execute - - - - - | | | | | | | | | +---- 一周中的第几天 (0 - 7) (0 或 7 都代表周日) | | | +------ 月份 (1 - 12) | | +-------- 一个月中的第几天 (1 - 31) | +---------- 小时 (0 - 23) +------------ 分钟 (0 - 59)
在这五个字段之后就是要执行的命令或脚本。每个字段的含义如下:
- 分钟(Minute): 0 到 59 之间的整数,表示在这小时内的第几分钟执行任务。
- 小时(Hour): 0 到 23 之间的整数,表示一天中的第几小时执行任务。
- 日期(Day of the Month): 1 到 31 之间的整数,表示一个月中的哪一天执行任务。
- 月份(Month): 1 到 12 之间的整数,表示哪个月执行任务。
- 星期(Day of the Week): 0 到 7 之间的整数,其中 0 和 7 都表示星期日。
特殊符号
*
:表示任何可能的值。-
:表示一个范围。,
:表示一个列表。/
:用于递增的开始时间(如0-5/15 * * * *
表示从0分钟开始,每15分钟执行一次)。L
:表示列表中的最后一个数字(仅用于日期和星期几)。W
:表示有效工作日(仅用于日期)。#
:表示星期几的一个数字的第几个实例(仅用于星期几)。
Cron 支持一些特殊符号来简化时间设置:
0 0 * * *
:每天午夜(00:00)执行任务。*/15 * * * *
:每 15 分钟执行一次任务。0 8-18 * * 1-5
:周一到周五,每天 8:00 到 18:00 间的整点执行任务。0 0 1 * *
:每月的第一天的午夜执行任务。
Crontab 文件的管理
使用以下命令可以管理 crontab 文件:
编辑用户的 crontab 文件:
crontab -e
这会打开当前用户的 crontab 文件进行编辑。
列出用户的 crontab 文件内容:
crontab -l
显示当前用户的所有定时任务。
删除用户的 crontab 文件:
crontab -r
删除当前用户的所有定时任务。
使用特定文件加载 crontab:
crontab filename
从指定的文件加载 crontab 配置。
Cron 特殊时间字符串
除了标准的时间字段外,Cron 还支持一些特殊的字符串来简化任务定义:
- @reboot:系统重启时执行。
- @yearly 或 @annually:每年执行一次,相当于
0 0 1 1 *
。 - @monthly:每月执行一次,相当于
0 0 1 * *
。 - @weekly:每周执行一次,相当于
0 0 * * 0
。 - @daily 或 @midnight:每天执行一次,相当于
0 0 * * *
。 - @hourly:每小时执行一次,相当于
0 * * * *
。