OpenClaw Cron 定时任务从入门到实战

发布时间:2026/5/19 5:20:04

OpenClaw Cron 定时任务从入门到实战 定时任务完全指南手把手教你自动化日常工作。目录为什么需要 Cron核心概念命令行基础实战案例高级用法Cron 表达式大全排错指南常见问题1. 为什么需要 Cron你是否有以下困扰⏰ 每天早上手动检查模型训练结果 定时去 GitHub 看有没有新的 PR 需要 review 每天手动跑数据报表 服务器挂了才发现 定时监控模型指标异常Cron 就是来解决这些问题的。它帮你定时执行任务推送结果相当于 24 小时待命的小助手。2. 核心概念2.1 三个关键问题每次创建 Cron 任务需要回答三个问题问题CLI 参数说明什么时候跑--at/--cron/--every调度策略在哪跑--sessionmain / isolated / current / session:xxx跑什么--system-event/--agent-turn具体动作2.2 SessionTarget 四种模式┌─────────────────────────────────────────────────────────────┐ │ SessionTarget 详解 │ ├─────────────────────────────────────────────────────────────┤ │.main │ 主会话有完整上下文但会刷屏 │ ├────────────────┼────────────────────────────────────────────┤ │.isolated │ 独立会话不打扰你结果通过 announce 推送 │ ├────────────────┼────────────────────────────────────────────┤ │.current │ 创建时绑定的当前会话 │ ├────────────────┼────────────────────────────────────────────┤ │.session:xxx │ 自定义命名会话跨天记住之前发生了什么 │ └─────────────────────────────────────────────────────────────┘通俗理解main 在微信主群里发消息大家都能看到isolated 私聊小助手不打扰群聊结果会单独发给你session:自定义名 有一个专门的小本本每次跑完记一笔下次还能翻看2.3 Payload 两种类型类型适用场景说明systemEvent简单提醒、主会话触发往主会话塞一条消息agentTurn复杂任务、独立执行让 AI 跑一段完整任务2.4 Delivery 推送方式模式说明适用场景announce跑完后推送到指定渠道绝大部分场景webhookPOST 结果到指定 URL对接外部系统none跑完就拉倒不推送后台内部任务3. 命令行基础3.1 安装确认# 先确认 OpenClaw 已安装openclaw--version# 查看 cron 子命令openclawcron--help3.2 核心命令一览# 添加任务openclawcronadd[参数...]# 列出所有任务openclawcronlist# 查看任务详情openclawcrongetjob-id# 立即触发任务openclawcronrunjob-id# 查看任务运行历史openclawcronruns--idjob-id# 删除任务openclawcronremove--idjob-id# 停止/启用任务openclawcrondisable--idjob-idopenclawcronenable--idjob-id# 查看 cron 状态openclawcronstatus3.3 常用参数表参数简写说明示例--name-n任务名称方便识别--name 早间报告--at-一次性时间ISO 8601--at 2026-03-15T10:00:00Z--cron-Cron 表达式--cron 30 9 * * 1-5--every-间隔时间毫秒--every 3600000--tz-时区--tz Asia/Shanghai--session-s会话目标--session isolated--system-event-主会话消息内容--system-event 检查数据--agent-turn-独立任务描述--agent-turn 分析日志...--announce-启用结果推送--announce--channel-推送渠道--channel telegram--to-推送目标--to channel:C123--wake-唤醒模式--wake now--stagger-随机延迟范围--stagger 30s--exact-精确时间不随机--exact--delete-after-run-跑完就删--delete-after-run4. 实战案例案例 1每日模型训练结果自动检查场景每天早上 9:30 自动检查昨天的训练日志生成报告推送到 TelegramStep 1: 创建任务openclawcronadd\--name每日模型训练报告\--cron30 9 * * 1-5\--tzAsia/Shanghai\--sessionisolated\--agent-turn请执行以下任务 1. 查看 ~/logs 目录 2. 找到最新的训练日志文件昨天日期的 3. 提取关键指标final_loss、final_accuracy、total_epochs、training_time 4. 检查是否有错误或警告 5. 生成一份简洁的中文报告包含 - 训练是否成功 - 关键指标对比前天 - 如有异常标记为 ⚠️ 警告\--announce\--channeltelegram\--stagger30sStep 2: 验证任务创建成功openclawcronlist输出类似┌──────────────┬──────────────────────┬─────────────────┐ │ ID │ Name │ Schedule │ ├──────────────┼──────────────────────┼─────────────────┤ │ abc123 │ 每日模型训练报告 │ 30 9 * * 1-5 │ └──────────────┴──────────────────────┴─────────────────┘Step 3: 手动测试一次# 立即运行看看效果openclawcronrun abc123# 查看运行结果openclawcronruns--idabc123案例 2定时服务器健康检查场景每小时检查服务器状态异常时 Slack 告警openclawcronadd\--name服务器健康检查\--every3600000\--sessionisolated\--agent-turn请执行健康检查 1. 运行 uptime 查看负载 2. 运行 df -h 查看磁盘空间 3. 运行 free -h 查看内存 4. 检查 GPU 可用性nvidia-smi 5. 如果发现以下任一情况标记为告警 - 磁盘使用率 90% - 内存使用率 85% - 负载 核心数 * 2 - GPU 不可用 6. 生成简洁报告异常项前面加 \--deliverywebhook\--tohttps://hooks.slack.com/services/xxx/yyy/zzz\--stagger1m案例 3股市开盘提醒 自动查数据场景A股开盘前9:25推送当日市场情绪openclawcronadd\--nameA股开盘提醒\--cron25 9 * * 1-5\--tzAsia/Shanghai\--sessionisolated\--agent-turn查询今日A股市场情况 1. 获取上证指数开盘情况 2. 获取市场情绪指标涨跌幅统计 3. 给出简短的操盘建议仅供娱乐\--announce\--channeltelegram\--exact案例 4GitHub PR 自动审查提醒场景每天下午 4 点检查有没有需要 review 的 PRopenclawcronadd\--namePR Review 提醒\--cron0 16 * * 1-5\--tzAsia/Shanghai\--sessionmain\--system-event提醒小星星检查一下待 Review 的 PR 列表用 gh pr list --review-requested me --state open 看看有哪些需要处理案例 5定时任务队列监控场景每 10 分钟检查任务队列积压超过阈值就告警openclawcronadd\--name任务队列监控\--every600000\--sessionisolated\--agent-turn执行以下检查 1. 查询 Redis 任务队列长度redis-cli llen task_queue 2. 如果队列长度 100标记为告警 3. 查询最近失败任务数redis-cli lrange failed_tasks -1 -1 4. 生成报告 - 当前队列长度 - 过去 10 分钟新增任务数 - 失败任务数 - 结论正常/警告/告警\--announce\--channeltelegram案例 6定时数据报表生成场景每周五下午 6 点生成周报openclawcronadd\--name周报生成\--cron0 18 * * 5\--tzAsia/Shanghai\--sessionisolated\--agent-turn请生成本周工作周报 1. 统计代码提交git log --since2024-01-01 --until2024-01-07 --oneline | wc -l 2. 统计 PR 数量gh pr list --state merged --created 2024-01-01..2024-01-07 3. 读取 ~/notes/weekly.md 添加本周进展 4. 生成 Markdown 格式周报保存到 ~/reports/weekly-2024-W01.md\--announce\--channeltelegram5. 高级用法5.1 自定义 Session跨天记忆如果希望任务能记住之前的结果用自定义 sessionopenclawcronadd\--name每日模型指标追踪\--cron0 10 * * *\--tzAsia/Shanghai\--sessionsession:model-tracker\--agent-turn今天模型指标 1. 读取 ~/metrics/latest.json 2. 对比昨天的指标 3. 计算变化趋势 4. 记录到 ~/metrics/history.md\--announce\--channeltelegram这样每次运行都会在同一个会话里可以追问上周趋势怎么样。5.2 精确时间不随机延迟# 默认为了防止扎堆会有随机延迟# 禁用--exact# 或--stagger05.3 条件执行OpenClaw 的 cron 本身不支持复杂条件但可以通过 prompt 实现--agent-turn只有当今天是中国工作日时才执行以下任务...5.4 串接多个任务通过 webhook 可以实现任务链任务A --(webhook)-- 任务B --(webhook)-- 任务C6. Cron 表达式大全6.1 基础格式┌───────────── 分钟 (0 - 59) │ ┌─────────── 小时 (0 - 23) │ │ ┌───────── 日 (1 - 31) │ │ │ ┌─────── 月 (1 - 12) │ │ │ │ ┌───── 周 (0 - 60周日) │ │ │ │ │ * * * * *6.2 常用表达式表达式含义示例0 9 * * *每天 9:00早间简报30 9 * * 1-5工作日 9:30上班提醒0 */2 * * *每 2 小时定时检查0 0 * * *每天午夜数据备份0 */6 * * *每 6 小时例行检查*/15 * * * *每 15 分钟高频监控0 10 * * 1每周一 10:00周报0 9 1 * *每月 1 日 9:00月报0 9 * * 0,6周末 9:00周末特供6.3 特殊字符字符含义示例*任意值* * * * * 每分钟,多个值0 9 * * 1,3,5 周一三五-范围0 9 * * 1-5 工作日/间隔*/15 * * * * 每 15 分钟7. 排错指南7.1 任务没运行# 1. 检查 cron 服务状态openclawcronstatus# 2. 确认任务存在且启用openclawcronlist# 3. 查看最近运行记录openclawcronruns--idjob-id7.2 时间对不上默认时区是UTC中国时间要加--tz Asia/ShanghaiISO 时间带 Z UTC不带 本地时间# 错误示例北京时间 9:30 但写成 UTC--cron30 1 * * *# UTC 1:30 北京 9:30# 正确示例--cron30 9 * * *\--tzAsia/Shanghai7.3 结果没收到确认--announce或--delivery正确设置确认--channel正确telegram/elegram/slack 等检查目标是否正确--to channel:xxx7.4 任务跑失败了# 查看详细日志openclawcronruns--idjob-id--verbose8. 常见问题Q: Cron 和 Heartbeat 有什么区别特性CronHeartbeat触发方式精确时间轮询间隔持久化✅ 持久❌ 临时复杂任务✅ 支持⚠️ 简单推送方式灵活依赖配置简单说Cron 定时闹钟Heartbeat 轮询监听。Q: 可以创建多少个 Cron 任务没有硬性限制但建议控制在 50 个以内。Q: 任务会后台运行还是会唤醒 AI这取决于你用什么systemEvent 唤醒主会话的 AIagentTurn 在独立会话跑 AIQ: 如何调试刚创建的任务# 立即运行一次openclawcronrunjob-id# 观察输出总结Cron 是你的免费 24 小时助手特别适合✅ 定时检查模型训练结果✅ 定时监控服务器健康✅ 定时生成报表✅ 定时推送提醒✅ 定时数据备份入门只需要一条命令openclawcronadd--name测试--at2026-03-15T12:00:00Z--sessionmain --system-event测试成功

相关新闻