Cron 表达式生成器/ 可视化构建
可视化构建 Cron 定时任务表达式,实时中文解读执行计划,预览接下来 10 次执行时间。支持直接编辑与选择器双向同步。
Cron 表达式
直接编辑表达式,选择器自动同步
分钟小时日期月份星期
常用预设
分钟
小时
日期
月份
星期
从到
执行计划
工作日 09:00
0 9 * * 1-5接下来 10 次执行基于当前本地时间
15月29日周五 09:00
即将26月1日周一 09:00
3 天 0 小时后36月2日周二 09:00
4 天 0 小时后46月3日周三 09:00
5 天 0 小时后56月4日周四 09:00
6 天 0 小时后66月5日周五 09:00
7 天 0 小时后76月8日周一 09:00
10 天 0 小时后86月9日周二 09:00
11 天 0 小时后96月10日周三 09:00
12 天 0 小时后106月11日周四 09:00
13 天 0 小时后这个工具有帮到你吗?
什么是 Cron 表达式生成器
Cron 表达式生成器是一个可视化工具,帮助开发者通过简单的点击和选择构建复杂的 Cron 定时任务表达式,而无需记忆晦涩的语法。Cron 表达式由 5-6 个字段组成,分别表示分钟、小时、日期、月份、星期和可选的年份。
Cron 定时任务的常见应用场景
定时备份:每天凌晨 2 点执行数据库备份脚本。定时任务调度:每 5 分钟检查一次邮件队列。定时报告生成:每周一上午 9 点生成上周销售报告。缓存清理:每小时清理过期的缓存数据。定时数据同步:每天定时从外部 API 同步数据。
代码示例
JavaScript (node-cron)
import cron from "node-cron";
// Run every weekday at 9:00 AM
cron.schedule("0 9 * * 1-5", () => {
console.log("Good morning!");
sendDailyReport();
});
// Run every 30 minutes
cron.schedule("*/30 * * * *", () => {
checkForUpdates();
});Python (APScheduler)
from apscheduler.schedulers.blocking \
import BlockingScheduler
from apscheduler.triggers.cron \
import CronTrigger
scheduler = BlockingScheduler()
# Every day at midnight
@scheduler.scheduled_job(
CronTrigger.from_crontab("0 0 * * *")
)
def nightly_cleanup():
clean_temp_files()
scheduler.start()GitHub Actions
# .github/workflows/scheduled.yml
name: Scheduled Task
on:
schedule:
# UTC time — runs daily at 01:00 UTC
- cron: "0 1 * * *"
workflow_dispatch: # manual trigger
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm run buildLinux Crontab
# Edit crontab: crontab -e # View crontab: crontab -l # Backup database daily at 3:30 AM 30 3 * * * /usr/local/bin/backup.sh # Rotate logs every Monday at midnight 0 0 * * 1 /usr/sbin/logrotate /etc/logrotate.conf # Check disk space every 15 minutes */15 * * * * df -h > /tmp/disk.log
常见问题
Cron 表达式由哪几个字段组成?
标准 Cron 表达式包含 5 个字段,从左到右依次是:分钟(0-59)、小时(0-23)、日期(1-31)、月份(1-12)、星期(0-7,0 和 7 都表示周日)。每个字段用空格分隔。例如 "0 9 * * 1-5" 表示工作日每天上午 9:00 执行。
* 和 */5 有什么区别?
* 表示该字段的每一个可能值,例如分钟字段用 * 表示每分钟都执行。*/5 是步进语法,表示从最小值开始每隔 5 个单位执行一次,例如分钟字段 */5 表示第 0、5、10、15...55 分钟执行。你也可以指定起始值,如 2-30/5 表示从第 2 分钟到第 30 分钟每隔 5 分钟执行。
日期和星期可以同时指定吗?
可以,但需要注意 Unix cron 的特殊逻辑:当日期和星期字段都不是 * 时,它们之间是"或"(OR)关系,而不是"且"(AND)。例如 "0 9 15 * 1" 表示每月 15 号"或"每周一的 9:00 都会执行,不是仅在 15 号恰好是周一时才执行。
如何设置每天凌晨 2:30 执行?
使用表达式 "30 2 * * *"。第一个字段 30 表示第 30 分钟,第二个字段 2 表示凌晨 2 点,后面三个 * 表示每天、每月、不限星期。注意 Cron 使用 24 小时制,所以下午 2:30 应写为 "30 14 * * *"。
Cron 表达式中可以使用哪些特殊字符?
常用特殊字符包括:* 匹配所有值;, 分隔多个值(如 1,3,5);- 定义范围(如 1-5 表示 1 到 5);/ 定义步进(如 */10 每隔 10 个单位)。部分系统还支持 L(最后一天)、W(工作日)、# 等扩展语法,但标准 5 字段 cron 只使用前四种。
这个工具生成的表达式兼容哪些系统?
本工具生成标准 5 字段 Cron 表达式,兼容几乎所有主流系统:Linux/macOS crontab、Docker、Kubernetes CronJob、GitHub Actions(schedule 触发器)、CI/CD 平台(Jenkins、GitLab CI)、云服务商(AWS CloudWatch、Google Cloud Scheduler、Azure Functions)以及各类任务调度框架。