DevBox

Cron 表达式生成器

⑥ 定时与运维

这是什么:定时任务:让服务器在你设定的时间(比如每天凌晨)自动执行命令,不用人工盯着。

什么时候用:需要定时备份、定时清理、定时跑脚本时,用 cron 表达式描述"什么时候执行"。

0-59

0-23

1-31

1-12

0-6(0=周日)

这条表达式的意思

未来 5 次执行时间(本地时区)

    全部在你的浏览器本地计算,不上传任何数据。

    生成之后,把它放到哪里?

    Cron 表达式只描述"什么时候",真正执行的是一条命令。把两者拼成一行,放进对应系统的定时任务即可。下面的示例会随上方表达式实时更新

    1 Linux / macOS:crontab(最常用)

    在服务器上定时跑脚本就用它。先填你要执行的命令,得到"表达式 + 命令"这一整行:

    1. 1. 终端执行 crontab -e,打开当前用户的定时任务
    2. 2. 把上面这一整行粘进去
    3. 3. 保存退出(vim 里按 Esc,输入 :wq 回车)
    4. 4. 用 crontab -l 查看已添加的任务
    💡 小贴士:cron 环境的 PATH 很精简,命令尽量用绝对路径(如 /usr/bin/python3);建议把输出写进日志便于排查,在命令末尾加 >> /var/log/mytask.log 2>&1

    2 系统级:/etc/cron.d(多一个"用户"字段)

    写进 /etc/crontab/etc/cron.d/ 下的文件时,要比用户 crontab 多一个"以哪个用户运行"的字段(需要 root):

    3 Windows:没有 cron,用「任务计划程序」

    Windows 不支持 cron 语法,三种等价做法:

    • 图形界面:开始菜单搜索「任务计划程序 / Task Scheduler」,新建任务并设定触发时间。
    • 命令行 schtasks,例如"每天 03:00 运行":
    schtasks /create /tn "MyTask" /tr "C:\path\script.bat" /sc daily /st 03:00

    • 或安装 WSL(Windows 里的 Linux),就能直接用上面的 crontab。

    注意:schtasks 用自己的参数(/sc daily/sc hourly…),不吃 cron 表达式;复杂调度建议用 WSL + crontab。

    4 在代码或 CI 里(直接复用这条表达式)

    很多框架直接接受 cron 表达式,把上方生成的表达式粘进去即可:

    Node.js(node-cron)

    cron.schedule('', () => { /* 你的任务 */ })

    Python(APScheduler)

    CronTrigger.from_crontab('')

    Spring(注意是 6 位,秒在最前,已自动补 0)

    @Scheduled(cron = "")

    GitHub Actions

    on:
      schedule:
        - cron: ''

    Kubernetes CronJob

    schedule: ""

    常见 Cron 表达式示例

    点击任意一行即可填入上方工具查看解释与执行时间。

    表达式 含义
    */5 * * * * 每 5 分钟执行一次
    0 * * * * 每小时整点执行
    0 0 * * * 每天凌晨 0 点执行
    0 3 * * * 每天凌晨 3 点执行(常用于备份)
    0 9 * * 1 每周一上午 9 点执行
    0 0 1 * * 每月 1 号 0 点执行
    0 18 * * 1-5 工作日(周一至周五)18 点执行
    30 2 * * 0 每周日凌晨 2:30 执行

    常见问题

    Cron 表达式的五个字段分别是什么?

    从左到右依次是:分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-6,0 表示周日)。字段之间用空格分隔。

    crontab 里 * 和 */5 有什么区别?

    * 表示"每一个"(如分钟位的 * 表示每分钟);*/5 表示"每隔 5 个单位"(如分钟位的 */5 表示每 5 分钟)。

    星期字段 0 和 7 都表示周日吗?

    在多数实现中 0 表示周日;部分实现也接受 7 表示周日。为兼容性建议统一用 0。

    AI 给我的 cron 表达式怎么确认对不对?

    把它粘贴到上面的输入框,页面会立即给出中文解释和未来 5 次执行时间——一眼就能核对是否符合预期,不用担心 AI 幻觉。

    深入了解 Cron

    相关工具