Cron 表达式生成器

本工具采用标准五字段 Cron 格式,适用于常见 Linux / Unix Crontab。Quartz、Spring 等使用六字段或七字段(含秒、年,或 ?、L、W、# 等特殊字符)的表达式暂不支持。
Cron 表达式
字段说明
字段取值范围
分钟0-59
小时0-23
日期1-31
月份1-12
星期0-7
表达式语法
*任意值
*/5每隔 N 个单位
1-5范围
1,3,5多个值
1-5/2步长
执行时间预览
标准 Cron 表达式由 5 个字段组成:分钟、小时、日期、月份、星期。
字段解析
字段表达式含义
字段含义按标准 Linux Crontab 解释;当“日期”和“星期”同时指定时,二者为“或”关系。
执行时间预览

在线生成、解析与验证 Linux Cron 定时任务

Cron 表达式生成器是一款免费的在线 Cron 定时任务生成、解析与验证工具,支持 Linux/Unix 常见的标准五字段 Cron 格式。你可以通过分钟、小时、日期、月份和星期字段配置生成定时任务表达式,也可以输入已有表达式,检查语法和取值范围,查看各字段的执行规则、自然语言说明以及下一次执行时间。工具在浏览器本地完成表达式处理,无需安装软件,适合开发者、系统管理员和需要配置服务器定时任务的用户。

Cron 表达式生成器的主要功能

  • 可视化生成:通过分钟、小时、日期、月份和星期五个字段配置 Cron 执行规则。
  • 常用预设:提供每分钟、每隔 5 分钟、每小时、每天、工作日和每月等常见定时规则。
  • 快捷设置:通过字段快捷按钮快速选择任意值、间隔值、指定分钟、工作日和周末等配置。
  • 实时生成:修改字段后自动组合并更新五字段 Cron 表达式。
  • 语法验证:检查字段数量、数值范围、表达式格式和步长是否合法,并提示相应错误。
  • 表达式解析:输入已有 Cron 表达式,解析每个字段的取值和执行含义。
  • 自然语言说明:将常见 Cron 规则转换为容易理解的执行时间描述。
  • 执行时间预览:根据浏览器本地时区估算下一次及后续多次执行时间。
  • 语法参考:提供字段范围、星号、步长、范围和列表等常见语法说明。
  • 复制表达式:一键复制生成或验证通过的 Cron 表达式,方便粘贴到服务器配置中。

什么是 Cron 表达式?

Cron 表达式是一种用于描述周期性任务执行时间的规则格式,常见于 Linux/Unix 系统的 Crontab 定时任务。系统根据表达式中的时间字段匹配当前时间,当调度条件满足时执行指定命令或脚本。

本工具采用常见 Linux/Unix Crontab 五字段格式,字段顺序为分钟、小时、日期、月份和星期。例如:

0 9 * * 1-5

该表达式表示每周一至周五上午 09:00 执行一次任务。

Cron 表达式五个字段说明

标准五字段 Cron 表达式由五个按顺序排列的字段组成,各字段之间使用空格分隔。

1. 分钟(Minute)

取值范围为 0-59,用于指定每小时中的执行分钟。例如 0 表示每小时的第 0 分钟执行,*/5 表示每隔 5 分钟执行一次。

2. 小时(Hour)

取值范围为 0-23,使用 24 小时制。例如 8 表示上午 8 点,18 表示下午 6 点。

3. 日期(Day of Month)

取值范围为 1-31,用于指定每月中的日期。例如 1 表示每月 1 日,1-15 表示每月 1 日至 15 日。实际执行时,不存在的日期不会匹配,例如 2 月没有 31 日。

4. 月份(Month)

取值范围为 1-12,分别对应 1 月至 12 月。例如 1 表示每年 1 月,6,12 表示每年 6 月和 12 月。

5. 星期(Day of Week)

取值范围为 0-7,常见 Linux Cron 中 0 和 7 均表示星期日,1 至 6 分别表示星期一至星期六。例如 1-5 表示星期一至星期五,0,6 表示星期日和星期六。

Cron 表达式常用语法

星号(*)

* 表示该字段的所有可用值。例如分钟字段使用 *,表示每分钟都满足该字段条件。

步长(*/N)

*/N 表示按照指定间隔选择字段值。例如分钟字段使用 */5,表示每隔 5 分钟执行一次;小时字段使用 */2,表示每隔 2 小时执行一次。

范围(A-B)

A-B 表示指定范围内的所有值。例如小时字段使用 9-17,表示上午 9 点至下午 5 点之间对应的小时值。

列表(A,B,C)

A,B,C 表示多个指定值。例如小时字段使用 8,12,18,表示每天 8 点、12 点和 18 点执行。

范围步长(A-B/N)

A-B/N 表示在指定范围内按照步长选择值。例如分钟字段使用 0-30/10,表示在第 0、10、20 和 30 分钟执行。

起始值步长(A/N)

A/N 表示从指定起始值开始,按照步长递增,直到该字段允许的最大值。例如分钟字段使用 5/10,表示第 5、15、25、35、45 和 55 分钟执行。

Cron 表达式生成与解析示例

每分钟执行一次

* * * * * 表示每分钟执行一次任务。

每 5 分钟执行一次

*/5 * * * * 表示每小时的第 0、5、10、15 等分钟执行。

每小时执行一次

0 * * * * 表示每小时的第 0 分钟执行一次。

每天上午 8 点执行

0 8 * * * 表示每天上午 08:00 执行一次。

工作日上午 9 点执行

0 9 * * 1-5 表示每周一至周五上午 09:00 执行。

每周一上午 9 点执行

0 9 * * 1 表示每周一上午 09:00 执行。

每月 1 日凌晨执行

0 0 1 * * 表示每月 1 日 00:00 执行。

每天多个时间执行

0 8,12,18 * * * 表示每天上午 08:00、中午 12:00 和下午 18:00 执行。

Cron 表达式日期与星期的匹配规则

在常见 Vixie Cron 语义中,日期字段和星期字段同时设置为限制值时,两个字段采用 OR 关系,而不是必须同时满足。例如:

0 8 1 * 1

表示每个月 1 日以及每周一的 08:00 执行。如果某个月的 1 日恰好是星期一,该日期只对应一个匹配时间,不会因为两个条件同时满足而执行两次。

当日期字段或星期字段其中一个使用 * 时,另一个字段的限制条件决定对应的日期匹配规则。配置涉及日期和星期时,建议使用本工具的解析说明和执行时间预览检查实际结果。

如何使用 Cron 表达式生成器?

  1. 打开生成器,选择分钟、小时、日期、月份和星期字段。
  2. 可以选择常用预设,也可以通过快捷设置按钮快速配置字段。
  3. 工具自动生成 Cron 表达式,并检查字段格式和数值范围。
  4. 查看表达式描述,确认任务执行规则符合预期。
  5. 点击复制按钮,将表达式粘贴到 Linux Crontab 或其他兼容的定时任务配置中。

如何解析和验证 Cron 表达式?

  1. 切换到解析器选项卡。
  2. 输入需要检查的五字段 Cron 表达式,例如 0 9 * * 1-5。
  3. 工具检查字段数量、字段格式、数值范围和步长设置。
  4. 表达式有效时,查看五个字段的表达式内容和具体含义。
  5. 查看自然语言描述及下一次和后续执行时间,确认定时规则是否符合预期。

如果表达式字段数量不正确、包含不支持的语法、数值超出允许范围或步长不合法,工具会显示相应的错误提示,帮助定位需要修改的字段。

Cron 下一次执行时间预览

本工具支持根据 Cron 表达式预览下一次及后续多次执行时间,方便检查定时规则是否符合预期。预览使用浏览器本地日期、时间和时区进行计算,不需要将表达式发送到服务器。

例如,输入 0 9 * * 1-5,可以查看后续符合星期一至星期五上午 09:00 规则的执行时间。对于指定日期、月份或星期的表达式,也可以通过多次执行时间检查规则是否正确。

执行时间预览属于客户端估算,实际任务执行还会受到服务器时区、系统时间、夏令时和具体 Cron 调度器实现的影响。部署到服务器前,应以服务器实际使用的 Cron 环境为准。

Linux Crontab 使用示例

在 Linux 系统中,可以使用 crontab -e 编辑当前用户的定时任务配置。每条常见五字段 Cron 任务通常由时间表达式和需要执行的命令组成,例如:

*/5 * * * * /usr/bin/php /var/www/html/task.php

以上示例表示每隔 5 分钟执行一次 PHP 脚本。实际使用时,请根据服务器上的程序路径、运行用户、环境变量和权限配置调整命令。

Cron 表达式适用场景

  • Linux 和 Unix 系统的 Crontab 定时任务。
  • 服务器定时执行 PHP、Python、Shell 等脚本。
  • 网站数据更新和定期维护。
  • 数据库备份与定时归档。
  • 日志清理、临时文件清理和系统维护。
  • 定时同步数据、调用 API 和执行自动化任务。
  • 周期性报表生成和数据处理。
  • 开发环境中的重复任务调度。

使用 Cron 表达式时的注意事项

  • 确认使用的是五字段 Cron 格式,并检查目标调度器支持的语法。
  • 确认服务器系统时间和时区设置正确,不要直接将浏览器时区当作服务器时区。
  • 日期与星期同时设置限制条件时,注意常见 Vixie Cron 的 OR 匹配规则。
  • 每月 29 日、30 日或 31 日等日期规则,需要考虑不同月份的实际天数。
  • 使用步长、范围和列表时,检查起始值、结束值及步长是否符合预期。
  • 建议在生产环境部署前验证表达式,并确认命令路径、执行权限和运行环境。

支持范围说明

本工具主要支持常见 Linux/Unix Crontab 标准五字段表达式,包括分钟、小时、日期、月份和星期字段,以及星号、步长、范围和列表等语法。星期字段支持常见的 0-7 表示方式,其中 0 和 7 均表示星期日。

本工具不支持 Quartz、Spring 等使用六字段或七字段的 Cron 方言,也不支持 ?、L、W、# 等扩展特殊字符。不同 Cron 调度器可能存在语义差异,使用前请确认目标环境的语法规范。

常见问题

Cron 表达式有几个字段?

本工具支持的标准 Cron 表达式包含五个字段,依次为分钟、小时、日期、月份和星期,字段之间使用空格分隔。

每分钟执行一次的 Cron 表达式是什么?

* * * * * 表示每分钟执行一次,是常见的五字段 Cron 定时表达式。

*/5 在 Cron 表达式中是什么意思?

*/5 表示每隔 5 个单位选择一次字段值。例如放在分钟字段中,表示每隔 5 分钟执行一次。

Cron 表达式中的星期 0 和 7 有什么区别?

在常见 Linux/Unix Cron 中,星期字段的 0 和 7 都可以表示星期日,1 至 6 表示星期一至星期六。

日期和星期同时设置时,是 AND 还是 OR?

在常见 Vixie Cron 语义中,如果日期和星期字段都设置了具体限制,满足日期条件或星期条件中的任意一个即可执行,即采用 OR 关系。具体行为仍应以目标 Cron 实现为准。

为什么 Cron 表达式验证通过,却没有执行?

语法正确不代表任务一定会成功执行。还需要检查服务器时区、系统时间、Crontab 服务状态、任务运行用户、命令绝对路径、文件权限和程序运行环境。

本工具支持 Quartz Cron 吗?

不支持。本工具主要面向 Linux/Unix 标准五字段 Crontab 格式。Quartz 常见表达式使用六字段或七字段,并支持 ?、L、W 和 # 等扩展语法,需要使用对应的 Quartz 表达式工具。

下一次执行时间为什么可能与服务器实际执行时间不同?

本工具根据浏览器本地时区进行时间预览,而服务器可能使用不同的时区、系统时间或 Cron 实现。夏令时切换和调度器自身规则也可能影响实际执行时间,因此生产环境应以服务器的调度结果为准。

总结

Cron 表达式生成器集定时规则生成、表达式解析、语法验证和执行时间预览于一体。通过五字段配置、常用预设、快捷设置和自然语言说明,可以更方便地创建和检查 Linux Crontab 定时任务。无论是服务器脚本、数据库备份、网站维护还是自动化任务调度,都可以使用该工具快速生成符合预期的 Cron 表达式。

Cron 表达式生成与解析工具

在线 Cron 工具支持 Linux/Unix 标准五字段表达式的可视化生成、语法验证和自然语言解析,可配置分钟、小时、日期、月份和星期,并预览下一次及后续执行时间。
  • 支持分钟、小时、日期、月份和星期五字段配置
  • 提供常用 Cron 预设和字段快捷设置
  • 自动生成并验证 Cron 表达式,检查字段数量、格式、范围和步长
  • 解析自定义表达式,显示每个字段的含义和自然语言描述
  • 支持日期与星期 OR 匹配规则的说明
  • 预览下一次及后续多次任务执行时间
  • 根据浏览器本地时区进行执行时间估算
  • 适用于 Linux Crontab、服务器脚本和自动化定时任务
使用 Cron 表达式生成器可以快速创建、解析和验证 Linux 五字段定时任务规则,并预览后续执行时间,适合服务器管理、脚本调度、数据库备份和网站自动化维护。
评论 0
暂无评论,快来发表第一条评论吧
avatar
评论内容不能为空
0/255