在OpenClaw中设置定时任务(Cron Jobs)主要通过AppFlow功能实现,允许您定期自动执行指令或工作流。以下是具体设置方法:

核心设置步骤

1. 启用AppFlow

确保OpenClaw配置中启用了AppFlow模块。检查~/.openclaw/openclaw.json配置文件:

  1. {
  2. "appflow": {
  3. "enabled": true,
  4. "cron": {
  5. "enabled": true,
  6. "timezone": "Asia/Shanghai" // 设置时区
  7. }
  8. }
  9. }

2. 创建定时任务配置

在OpenClaw工作目录中创建或编辑定时任务文件,通常位于~/.openclaw/appflow/cron.json或通过命令行添加。

方法一:通过配置文件
创建cron.json文件:

  1. {
  2. "jobs": [
  3. {
  4. "name": "每日备份",
  5. "schedule": "0 2 * * *", // Cron表达式:每天凌晨2
  6. "command": "backup --all",
  7. "channel": "main" // 执行频道
  8. },
  9. {
  10. "name": "每小时检查邮件",
  11. "schedule": "0 * * * *",
  12. "command": "email check --unread",
  13. "channel": "email-bot"
  14. }
  15. ]
  16. }

方法二:通过命令行添加

  1. # 添加定时任务
  2. openclaw appflow cron add --name "测试任务" --schedule "*/15 * * * *" --command "echo '定时执行'"
  3. # 列出所有定时任务
  4. openclaw appflow cron list
  5. # 删除定时任务
  6. openclaw appflow cron remove --name "测试任务"

3. Cron表达式格式

OpenClaw使用标准Cron表达式,格式为:

  1. * * * * *
  2. └── 星期几 (0-707都代表周日)
  3. └───── 月份 (1-12)
  4. └────────── 日期 (1-31)
  5. └─────────────── 小时 (0-23)
  6. └──────────────────── 分钟 (0-59)

常用示例:

  • 0 * * * *:每小时整点执行
  • 0 0 * * *:每天午夜执行
  • */10 * * * *:每10分钟执行
  • 0 9 * * 1:每周一上午9点执行

4. 任务执行内容

command字段支持任何OpenClaw能执行的指令,包括:

  • 内置工具:email checkcalendar list
  • 自定义技能:调用已安装的技能
  • Shell命令:通过exec工具运行系统命令
  • 复杂工作流:组合多个指令的脚本

示例:自动清理临时文件

  1. {
  2. "name": "清理临时文件",
  3. "schedule": "0 3 * * *",
  4. "command": "exec find /tmp -name '*.tmp' -mtime +7 -delete",
  5. "channel": "main"
  6. }

高级配置

环境变量支持

可以在任务中指定环境变量:

  1. {
  2. "name": "数据库备份",
  3. "schedule": "0 1 * * *",
  4. "command": "backup --database",
  5. "env": {
  6. "DB_HOST": "localhost",
  7. "DB_NAME": "mydb"
  8. }
  9. }

错误处理与重试

  1. {
  2. "name": "重要任务",
  3. "schedule": "0 */6 * * *",
  4. "command": "sync-data",
  5. "retry": {
  6. "attempts": 3,
  7. "delay": "5m"
  8. },
  9. "on_failure": "notify-admin --message '任务失败'"
  10. }

条件执行

通过conditions字段控制任务是否执行:

  1. {
  2. "name": "仅工作日执行",
  3. "schedule": "0 10 * * *",
  4. "command": "generate-report",
  5. "conditions": [
  6. "weekday 1-5" // 周一至周五
  7. ]
  8. }

管理监控

查看任务状态

  1. # 查看所有定时任务及其状态
  2. openclaw appflow cron status
  3. # 查看任务执行日志
  4. openclaw logs --filter cron
  5. # 手动触发任务执行(不等待定时)
  6. openclaw appflow cron run --name "任务名称"

禁用/启用任务

  1. # 临时禁用任务
  2. openclaw appflow cron disable --name "任务名称"
  3. # 重新启用
  4. openclaw appflow cron enable --name "任务名称"

注意事项

  1. 时区设置:确保Cron时区与系统时区一致,避免时间偏差。默认使用UTC,建议在配置中指定timezone

  2. 权限要求:定时任务以OpenClaw进程权限运行,确保有执行命令所需的权限。对于敏感操作,考虑在沙盒模式下运行。

  3. 资源占用:频繁任务(如每分钟执行)可能增加系统负载,合理规划执行频率。

  4. 网络依赖:如果任务需要网络访问,确保OpenClaw配置允许外部连接,或使用network: "bridge"的沙盒设置。

  5. 错误处理:建议为关键任务配置失败通知,如通过邮件或聊天工具报警。

  6. 版本兼容:定时任务功能在OpenClaw 2025.1.0+版本中完整支持,旧版本可能需要升级。

如果遇到配置问题,可查看OpenClaw日志获取详细错误信息:

  1. tail -f ~/.openclaw/logs/openclaw.log

对于复杂工作流,建议先通过手动测试命令确保功能正常,再添加到定时任务。更多高级用法请参考OpenClaw官方文档的AppFlow部分。

© 本文著作权归作者所有。转载请联系授权,禁止商用。

🔗 系列文章

1. openclaw能做什么?

2. openclaw会不会窃取我电脑上的私密信息?

3. openclaw的沙盒模式是什么?

4. Windows环境下如何正确安装OpenClaw?

5. 安装后提示"command not found"怎么办?

6. Node.js版本要求是什么?为什么推荐22版本?

7. 端口18789被占用如何处理?

8. 如何配置飞书/钉钉等国内聊天平台?

9. 配对码(Pairing)是什么?如何批准连接?

10. 如何切换AI模型提供商?

11. 联网搜索功能如何配置?

12. OpenClaw的记忆功能为什么"不会记住对话"?​

13. 如何安装和管理Skills(技能)?​

14. 定时任务(Cron Jobs)如何设置?

15. 浏览器自动化能做什么?具体如何操作?

16. 如何防范提示词注入(Prompt Injection)攻击?

17. 如何识别和避免恶意Skills?

18. 使用OpenClaw每月需要多少费用?

19. 如何控制Token消耗成本?

20. Gateway服务启动失败如何排查?

21. 遇到"HTTP 401: invalid access token"等错误怎么办?