UFOZoo

Cron表达式生成器 — Linux定时任务构建与解析工具

Cron 表达式生成器和解析器,通过可视化界面构建定时任务。支持字段选择器、常用预设、人类可读描述、下次执行时间预览和错误验证。

功能特性

  • 可视化 Cron 表达式构建器,为每个字段(分钟、小时、日期、月份、星期)提供直观的下拉选择器
  • 常用定时预设:每分钟、每小时、每天、每周、每月、工作时间
  • 实时人类可读描述翻译 - 将 * * * * * 即时转换为「每分钟」
  • 下次执行时间预览,显示本地时区的精确日期和时间
  • 双向编辑 - 直接修改表达式或使用可视化构建器,更改双向同步
  • 内置验证,为无效的 Cron 语法提供清晰的错误提示
  • 支持标准 5 字段 Linux crontab 格式(分钟 小时 日期 月份 星期)
  • 一键复制生成的表达式到剪贴板
  • 100% 浏览器端运行 - 无需服务器处理,您的 Cron 数据不会离开设备

使用方法

  1. 1从顶部预设行选择一个快捷选项(每分钟、每小时、每天等)或手动配置每个字段。
  2. 2手动配置时使用下拉框:分钟 (0-59)、小时 (0-23)、日期 (1-31)、月份 (1-12)、星期 (0-6)。
  3. 3使用 * 表示「每个值」,*/n 表示间隔(如 */15 = 每15分钟),逗号表示列表(如 1,15)。
  4. 4阅读表达式下方的人类可读描述,验证您的定时设置是否正确。
  5. 5查看「下次执行」部分,了解任务下次运行的时间。
  6. 6点击复制按钮将表达式复制到剪贴板,用于 crontab 或应用程序中。
  7. 7使用「下次执行」区域预览 Cron 任务的确切执行时间,显示本地时区的实际日期和时间,帮助您在部署到生产环境前验证表达式。
  8. 8切换不同预设来学习常见 Cron 模式的用法。每个预设自动填充所有字段并显示对应的下次执行时间,帮助您理解表达式与实际调度之间的关系。

常见问题

什么是 Cron 表达式?

Cron 表达式是由5个字段组成的字符串,用空格分隔,定义定时任务的执行时间。字段依次为:分钟 (0-59)、小时 (0-23)、日期 (1-31)、月份 (1-12)、星期 (0-6,0表示周日)。例如 '0 9 * * 1' 表示「每周一上午9点」。

* 和 */n 有什么区别?

星号 (*) 表示该字段的「每个可能值」。*/n 表示「每第n个值」。例如,分钟字段的 * 表示每分钟,而 */15 表示每15分钟(在0、15、30、45分执行)。同理,小时字段的 */2 表示每2小时执行一次。

如何设置仅在工作时间执行?

使用 '0 9-17 * * 1-5' 表示工作日上午9点到下午5点。'9-17' 指定9点到17点(下午5点),'1-5' 指定周一(1)到周五(5)。如需特定时间如上午9点和下午3点,使用逗号:'0 9,15 * * 1-5'。

为什么我的 Cron 表达式显示错误?

常见错误包括:值超出范围(如分钟 > 59)、无效字符或缺少字段。每个字段有特定的有效范围:分钟 (0-59)、小时 (0-23)、日期 (1-31)、月份 (1-12)、星期 (0-6)。工具会实时验证表达式并显示清晰的错误信息。

这个工具适用于 AWS EventBridge 或 Quartz 调度器吗?

本工具生成标准 5 字段 Linux crontab 表达式。AWS EventBridge 使用 6 字段格式,在开头多了一个「秒」字段。Quartz 调度器支持扩展语法如 L(最后)、W(工作日)、#(第几个)等,标准 Cron 不支持这些。对于这些系统,您可能需要调整生成的表达式。

如何在 Linux 上设置 Cron 任务?

使用 'crontab -e' 命令编辑您的 Cron 任务。添加一行,包含您的表达式和要运行的命令,如:'0 3 * * * /path/to/backup.sh'。保存并退出 - Cron 会自动生效。使用 'crontab -l' 查看当前任务列表。

如何设置每周日凌晨 2:30 执行备份?

使用 '30 2 * * 0'。'30' 表示分钟,'2' 表示小时(凌晨2点),第一个 '*' 表示每月任意日期,第二个 '*' 表示任意月份,'0' 表示周日(0=周日,6=周六)。此表达式每周日凌晨 2:30 可靠触发备份,不影响工作日运行。

Cron 和 systemd 定时器有什么区别?

Cron 是传统的 Linux 任务调度器,使用 crontab 文件和 5 字段表达式。Systemd 定时器是更现代的替代方案,支持持久定时器(启动后补运行失败任务)、基于日历的调度、随机延迟和更好的日志记录。Systemd 定时器使用不同的语法(OnCalendar=)。本工具生成标准 Cron 格式,而非 systemd 定时器语法。

可以设置在每月最后一天执行的任务吗?

标准 Cron 不直接支持「每月最后一天」。常用变通方案是设置 '0 6 28-31 * *',在脚本中添加日期检查,确认今天是当月最后一天后才执行。某些 Cron 实现支持在日期字段使用 L,但这并非标准。精确的最后一天调度建议使用脚本级别的日期判断。

Cron 的常见使用场景有哪些?

常见 Cron 使用场景包括:系统维护(半夜日志轮转)、数据库备份(每天凌晨3点)、报表生成(每周一早上)、邮件通知(每天上午10点)、缓存清理(每6小时)、监控检查(每5分钟)、数据同步(每小时)和证书续期(每月)。建议选择在非高峰时段执行的调度方案。

相关工具