Crontab表达式助手

可视化构建和解析 Crontab 定时任务表达式,支持常用预设和自定义配置

可视化构建器
解析结果

输入表达式后点击「解析表达式」查看说明

语法速查
符号含义示例
*任意值* * * * * 每分钟
*/n每隔n*/5 * * * * 每5分钟
n-m范围1-5 周一到周五
n,m列举0,6 周日和周六
n固定值0 2 * * * 每天2点
关于 Crontab表达式助手
  • Crontab 是 Linux/Unix 系统的定时任务调度工具,表达式格式为:分 时 日 月 周 命令
  • 支持可视化构建(填写各字段)和反向解析(输入表达式查看含义)两种模式
  • 提供 14 种常用预设,覆盖每分钟、每小时、每天、每周、每月等常见场景
操作说明
  • 从预设下拉框选择常用场景,或手动填写各字段后点击「生成表达式」
  • 在表达式输入框直接输入已有表达式,点击「解析表达式」查看中文说明
  • 填写执行命令后,点击「生成表达式」可生成完整的 Crontab 行
  • 支持 Ctrl+Enter 快捷键触发生成
注意事项
  • 周字段中 0 和 7 都表示周日,1-6 表示周一到周六
  • 日字段和周字段同时指定时,满足任一条件即执行(OR 关系)
  • Crontab 最小精度为分钟,不支持秒级调度(需使用 systemd timer 或其他工具)
  • 所有处理均在浏览器本地完成,不会上传任何数据
Crontab 知识详解
表达式字段结构

标准 Crontab 表达式由 5 个字段组成,字段之间用空格分隔:

┌─────────── 分钟 (0 - 59)
│ ┌───────── 小时 (0 - 23)
│ │ ┌─────── 日期 (1 - 31)
│ │ │ ┌───── 月份 (1 - 12)
│ │ │ │ ┌─── 星期 (0 - 7,0 和 7 均为周日)
│ │ │ │ │
* * * * * /path/to/command
字段取值范围说明
分钟0 – 59每小时的第几分钟执行
小时0 – 23一天中的第几小时(24小时制)
日期1 – 31每月的第几天
月份1 – 12一年中的第几月,也可用 Jan–Dec
星期0 – 70 和 7 均代表周日,1–6 为周一到周六,也可用 Sun–Sat
特殊字符速查
字符名称含义示例说明
*通配符匹配该字段所有合法值 * * * * *每分钟执行一次
*/n步长每隔 n 个单位执行一次 */10 * * * *每10分钟执行
n-m范围从 n 到 m 的连续值 0 9-17 * * 1-5工作日9点到17点每小时整点
n,m列表枚举多个离散值 0 8,12,18 * * *每天8点、12点、18点执行
n固定值精确匹配某个值 30 2 * * *每天凌晨2:30执行
n-m/s范围+步长在范围内每隔 s 执行 0-30/10 * * * *每小时0、10、20、30分执行
常用场景示例
场景表达式说明
每分钟* * * * *最高频率,适合心跳检测
每5分钟*/5 * * * *轻量级轮询任务
每天凌晨备份0 2 * * *低峰期执行数据库备份
工作日早报0 8 * * 1-5周一到周五早8点推送
每月账单0 9 1 * *每月1日9点生成账单
每季度报告0 0 1 1,4,7,10 *每季度首日凌晨生成报告
每周日清理0 3 * * 0周日凌晨3点清理临时文件
工作时间每小时0 9-18 * * 1-5工作日9点到18点每小时整点
每年元旦0 0 1 1 *每年1月1日凌晨执行
Crontab vs systemd timer
特性Crontabsystemd timer
最小精度分钟微秒(OnCalendar
日志需手动重定向自动写入 journald
依赖管理不支持支持 After=Requires=
错过执行直接跳过可配置 Persistent=true 补跑
随机延迟不支持支持 RandomizedDelaySec=
配置方式单行表达式两个 .timer + .service 文件
适用场景简单定时任务,兼容性好复杂依赖、需要日志追踪的任务

简单任务首选 Crontab;需要依赖控制、日志追踪或秒级精度时,推荐迁移到 systemd timer。

常见问题排查
现象可能原因解决方法
任务不执行 cron 服务未启动 systemctl start cronservice cron start
脚本手动可运行,cron 不执行 环境变量缺失(PATH 不同) 在 crontab 顶部添加 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
输出无法看到 未重定向输出 追加 >> /var/log/myjob.log 2>&1
百分号 % 被截断 crontab 中 % 是换行符 转义为 \%,如 date +\%Y-\%m-\%d
每天执行两次 日字段和周字段同时指定 两者满足其一即执行(OR),只需保留一个字段,另一个设为 *
修改后不生效 未通过 crontab -e 编辑 使用 crontab -e 编辑,保存后自动生效;直接编辑文件需重启 cron
# 查看当前用户的 crontab
crontab -l

# 编辑 crontab(推荐方式)
crontab -e

# 查看 cron 执行日志(Debian/Ubuntu)
grep CRON /var/log/syslog | tail -20

# 查看 cron 执行日志(CentOS/RHEL)
tail -f /var/log/cron