即时生成 Cron 表达式
设置每个字段——分钟、小时、日、月和星期——即可获得可直接使用的 crontab 行,以及通俗易懂的说明。
全部操作均在浏览器本地完成——不会向任何地方发送数据,也不会存储任何调度计划。
什么是 Cron 表达式?
Cron 表达式是一种由五个字段组成的模式,类 Unix 系统使用它来安排命令在固定的时间、日期或间隔自动运行。
每个字段控制不同的时间单位——分钟、小时、日、月和星期——它们共同精确定义任务应在何时运行。
Cron 字段语法
| 分钟 | 0–59 |
| 小时 | 0–23 |
| 日 | 1–31 |
| 月 | 1–12 |
| 星期 | 0–6(0 = 星期日) |
特殊字符
| * | 任意值——匹配该字段的所有可能值 |
| , | 值列表分隔符——例如 1,15 表示第 1 日和第 15 日 |
| - | 取值范围——例如 1-5 表示星期一到星期五 |
| / | 步进值——例如 */15 表示每 15 个单位 |
为什么要使用 Cron 生成器?
- 避免因语法错误而悄悄导致定时任务失效
- 在部署调度计划之前查看通俗易懂的说明
- 从常见示例开始,而不必从零编写
- 获得可直接粘贴的 crontab 行,并可附带可选命令
- 无需安装或注册账户
如何构建 Cron 表达式
- 设置分钟、小时、日、月和星期字段——或选择一个常见示例
- 可选择添加要运行的命令
- 查看通俗易懂的说明,确认调度计划正确
- 复制 crontab 行并粘贴到你的 crontab 文件中
Cron 最佳实践
优先选择特定的运行时间,而不是过于频繁的调度——如果每 5 或 15 分钟运行一次就足够,却每分钟运行一次,会浪费资源。
当一个任务同时依赖日和星期字段时,请注意大多数 cron 实现将这两个字段视为“或”关系,而不是“且”关系。
始终记录定时任务的输出(例如重定向到文件),以免失败情况被忽视。
常见使用场景
- 自动化数据库备份
- 日志轮转与清理任务
- 定时生成报告
- 缓存预热或缓存失效处理
- 定期发送邮件摘要
- 在系统之间同步数据
- 健康检查与监控探测
- 更新证书或令牌
常见问题
Cron 任务运行时使用哪个时区?
默认情况下,cron 使用系统的本地时区。有些平台允许按任务或按 crontab 单独设置特定时区——请查阅你所用系统的文档。
Cron 表达式可以包含秒字段吗?
标准的 Unix cron 只支持五个字段(从分钟开始),没有秒字段。一些调度器(例如 Quartz)支持可选的秒字段,但那是另一种格式。
如果同时设置了日和星期字段会怎样?
大多数 cron 实现只要满足其中一个条件即会运行任务(即“或”关系,而非“且”关系)。如果只想在特定日期且恰好落在特定星期时运行,通常需要在脚本本身中添加额外的逻辑判断。
在使用 cron 表达式之前如何测试它?
查看此处显示的通俗易懂的说明,确认它符合你的预期,然后在实际系统上用一个短期的测试调度进行验证,确认无误后再用于生产环境。
我应该使用 cron 还是 systemd 定时器?
Cron 简单且几乎随处可用,非常适合简单的周期性任务。systemd 定时器则提供更强的控制能力(依赖关系、日志记录、错过运行的处理),在已经使用 systemd 的系统上是不错的选择。