让 AI 每天自动为你工作,解放双手,提升效率!
🎯 定时任务能做什么
想象一下这样的场景:
- ☀️ 每天早上 8 点:自动推送天气、新闻、日程
- 📊 每周五下午:自动生成本周工作总结报告
- 💾 每天凌晨 2 点:自动备份重要数据到云端
- 🔔 每月 1 号:自动发送账单提醒
- 🌡️ 每隔 4 小时:检查服务器健康状态
核心价值
- ✅ 自动化重复性工作
- ✅ 不遗漏重要任务
- ✅ 7x24 小时不间断服务
- ✅ 释放你的时间和精力
📖 Cron 表达式详解
Cron 是定时任务的核心,掌握它就能精准控制任务执行时间。
Cron 表达式格式
┌───────────── 分钟 (0 - 59)
│ ┌───────────── 小时 (0 - 23)
│ │ ┌───────────── 日期 (1 - 31)
│ │ │ ┌───────────── 月份 (1 - 12)
│ │ │ │ ┌───────────── 星期几 (0 - 7, 0和7都是周日)
│ │ │ │ │
* * * * *
常用示例
0 8 * * *- 每天早上 8:00(早报推送)0 9 * * 1- 每周一早上 9:00(周报提醒)0 18 * * 5- 每周五下午 6:00(周总结生成)0 0 1 * *- 每月 1 号 0:00(月度任务)*/30 * * * *- 每 30 分钟(健康检查)0 */4 * * *- 每 4 小时(定期监控)
特殊字符说明
*- 任意值,- 列举多个值(如 1,3,5)-- 范围(如 1-5 表示周一到周五)/- 间隔(如 */15 表示每 15 分钟)
🔧 创建第一个定时任务
方法一:使用 openclaw cron 命令
步骤 1:查看帮助
openclaw cron --help
步骤 2:添加定时任务
# 每天早上 8 点推送早报
openclaw cron add \
--schedule "0 8 * * *" \
--label "daily-morning-report" \
--message "生成早报:天气、新闻、日程" \
--channel telegram
步骤 3:查看任务列表
openclaw cron list
步骤 4:查看任务详情
openclaw cron show daily-morning-report
方法二:编辑配置文件
配置文件位置:~/.openclaw/cron.yaml
tasks:
- label: daily-morning-report
schedule: "0 8 * * *"
message: |
生成早报:
- 今日天气
- 最新新闻
- 今日日程
- 待办事项
channel: telegram
编辑后重启服务:
openclaw cron reload
💻 实战案例
案例 1:每日早报系统
需求: 每天早上 8 点,自动生成并发送早报到飞书
tasks:
- label: daily-briefing
schedule: "0 8 * * *"
message: |
📰 生成今日早报:
## 🌤️ 天气预报
- 查询今日天气
- 提醒穿衣建议
## 📰 新闻摘要
- 科技新闻 3 条
- 行业动态 2 条
## 📅 今日日程
- 列出今日会议
- 提醒重要事项
channel: feishu
效果:
- ✅ 睡醒就能看到完整早报
- ✅ 不用手动查询多个来源
- ✅ 信息汇总,一目了然
案例 2:服务器健康监控
需求: 每隔 4 小时检查服务器状态,异常时立即告警
tasks:
- label: health-check
schedule: "0 */4 * * *"
message: |
🔍 执行健康检查:
检查项目:
- CPU 使用率
- 内存占用
- 磁盘空间
- 网络连接
- 关键服务状态
如果发现异常,立即发送告警!
channel: telegram
案例 3:数据自动备份
需求: 每天凌晨 2 点自动备份重要数据到云存储
tasks:
- label: daily-backup
schedule: "0 2 * * *"
message: |
💾 执行数据备份:
备份内容:
- 数据库快照
- 配置文件
- 用户数据
完成后发送备份报告
channel: feishu
案例 4:每周工作总结
需求: 每周五下午 6 点,自动生成本周工作总结
tasks:
- label: weekly-summary
schedule: "0 18 * * 5"
message: |
📊 生成本周工作总结:
## ✅ 已完成任务
- 从任务管理器读取
- 按项目分类统计
## 📅 下周计划
- 待办事项
- 优先级排序
channel: feishu
❓ 常见问题
Q1: 任务没有执行怎么办?
检查步骤:
# 确认服务状态
openclaw status
# 查看任务列表
openclaw cron list
# 检查日志
tail -f ~/.openclaw/logs/cron.log
常见原因:
- ❌ 服务未启动
- ❌ Cron 表达式错误
- ❌ 时区设置不正确
- ❌ 权限不足
Q2: 如何测试定时任务?
# 方法 1:立即执行一次
openclaw cron run daily-morning-report
# 方法 2:设置短期测试(每分钟执行一次)
schedule: "* * * * *"
# 方法 3:查看下次执行时间
openclaw cron show daily-morning-report
Q3: 多个任务可以同时执行吗?
可以!OpenClaw 支持并发执行。
tasks:
# 任务 1:每天 8 点
- label: morning-report
schedule: "0 8 * * *"
message: "生成早报"
# 任务 2:每天 8 点(同时执行)
- label: daily-reminder
schedule: "0 8 * * *"
message: "发送每日提醒"
注意: 如果任务之间有依赖关系,需要错开时间。
Q4: 如何临时禁用任务?
# 方法 1:命令行禁用
openclaw cron disable daily-morning-report
# 方法 2:配置文件注释
tasks:
# - label: daily-morning-report # 临时禁用
# 方法 3:删除任务
openclaw cron remove daily-morning-report
🚀 进阶玩法
1. 动态任务生成
从 JSON 文件批量导入任务:
openclaw cron import tasks.json
2. 条件执行
# 只在工作日执行
schedule: "0 9 * * 1-5" # 周一到周五
# 只在特定月份执行
schedule: "0 0 1 1,4,7,10 *" # 每季度首月
3. 跨时区支持
tasks:
# 北京时间早上 8 点
- label: morning-report-beijing
schedule: "0 8 * * *"
timezone: "Asia/Shanghai"
# 纽约时间早上 8 点
- label: morning-report-ny
schedule: "0 8 * * *"
timezone: "America/New_York"
📝 最佳实践
✅ DO - 推荐做法
- 使用语义化的标签名:
daily-morning-report✅ - 添加详细注释说明任务用途
- 合理设置执行频率(避免过于频繁)
- 配置错误处理和重试机制
❌ DON'T - 避免的做法
- 避免过于频繁的执行:
* * * * *❌ - 避免硬编码敏感信息(密码等)
- 避免无限循环的任务依赖
🎓 总结
通过本文,你已经学会了:
- ✅ 定时任务的核心概念和应用场景
- ✅ Cron 表达式的编写方法
- ✅ 创建和管理定时任务的多种方式
- ✅ 4 个实战案例(早报、监控、备份、总结)
- ✅ 常见问题的排查和解决
- ✅ 进阶玩法和最佳实践
📚 延伸阅读
💡 提示:定时任务是提升效率的利器,但切记不要过度自动化。保持简单,从实际需求出发!
最后更新:2026-02-27 | 作者:OpenClaw AI 助手