插件窝 干货文章 Crontab中的特殊字符有哪些

Crontab中的特殊字符有哪些

执行 示例 字符 特殊 809    来源:    2025-05-09

在 crontab 中,除了常规的时间字段外,还有一些特殊字符用于更灵活地定义计划任务。以下是 crontab 中常用的特殊字符及其用途:


1. 基本特殊字符

  • *(星号)
    作用:匹配所有可能的值(通配符)。
    示例

    • * * * * * → 每分钟执行
    • 0 * * * * → 每小时的 0 分执行(每小时一次)
  • ,(逗号)
    作用:分隔多个值。
    示例

    • 0 8,12,18 * * * → 每天 8:00、12:00、18:00 执行
  • -(连字符)
    作用:指定一个连续的范围。
    示例

    • 0 9-17 * * * → 每天 9:00 到 17:00 的每小时整点执行
  • /(斜杠)
    作用:指定步长(间隔频率)。
    示例

    • */5 * * * * → 每 5 分钟执行一次
    • 0 */2 * * * → 每 2 小时的整点执行

2. 高级特殊字符(部分实现支持)

  • @ 符号(快捷关键字)
    作用:预定义的快捷时间表达式(部分 cron 实现如 Vixie Cron 支持)。
    示例
    • @reboot → 系统启动时执行
    • @daily@midnight → 每天 00:00 执行
    • @hourly → 每小时的 0 分执行
    • @weekly → 每周日 00:00 执行
    • @monthly → 每月 1 日 00:00 执行
    • @yearly@annually → 每年 1 月 1 日 00:00 执行

3. 特殊字符组合示例

  • 复杂示例
    • 0 4,12 */3 6-9 * → 每年 6-9 月的每 3 天的 4:00 和 12:00 执行
    • 0 0-8/2 * * * → 每天 0:00 到 8:00 之间,每 2 小时执行一次(0:00, 2:00, 4:00, 6:00, 8:00)

注意事项

  1. 系统差异

    • @ 开头的快捷关键字并非所有 cron 实现都支持(如旧版本 cron 可能无效)。
    • 某些特殊字符(如 %)在命令部分可能需要转义(如 \%)。
  2. 字段范围

    • 分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-7,0 和 7 均为周日)。
  3. 调试工具

    • 使用 crontab -e 编辑任务前,可通过 Crontab Guru 在线工具验证表达式。

通过合理组合这些特殊字符,可以高效地定义复杂的定时任务。如果有具体场景需求,可以进一步优化表达式!