mcpField
C
cron-ops

cron-ops

github.com/alphaonedev云与 DevOps64 次安装
代码仓库

关于 cron-ops

cron-ops 是用于管理 OpenClaw 定时任务完整生命周期的技能,适合维护生产环境自动化的团队。它支持任务创建、更新、删除、故障排查及载荷清理。

主要功能

  1. 01创建和更新定时任务
  2. 02删除不再使用的任务
  3. 03查看日志并排查故障
  4. 04修正误报
  5. 05清理载荷以防注入

适用场景

  1. 01安排每日备份
  2. 02排查失败的定时任务
  3. 03维护 API 轮询任务
  4. 04清理自动化工作流中的旧任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill cron-ops

安装后在 Claude Code 中输入/cron-ops确认已加载。

详细介绍

cron-ops

用途

此技能负责 OpenClaw 中 cron 作业的完整生命周期,包括创建、更新、移除、调试、修复误报,以及清理载荷,确保自动化安全可靠。

适用场景

在生产环境中安排备份、数据同步或警报等重复性任务;排查 cron 故障;或维护自动化工作流中的作业规范。适用于服务器维护或 API 轮询等系统自动化场景。

主要功能

  • 使用自定义计划和命令创建 cron 作业。
  • 更新作业以修改计划、命令或参数。
  • 移除作业以清理不再使用的计划。
  • 通过记录输出和检查错误来调试作业。
  • 分析执行日志并调整筛选条件,以修复误报。
  • 清理载荷以防止注入攻击,确保命令安全。

使用模式

始终使用 $OPENCLAW_API_KEY 环境变量进行身份验证。使用 CLI 时,请在命令前加上 openclaw cron。使用 API 时,请使用 https://api.openclaw.com/cron 等 HTTPS 端点。先创建作业,再使用其 ID 进行更新或删除。在代码中,导入 OpenClaw SDK 并同步处理响应。示例模式:更新前检查作业状态,以避免冲突。

常用命令/API

快速操作可使用 OpenClaw CLI,以编程方式访问则可使用 REST API。身份验证需要设置 $OPENCLAW_API_KEY。

  • 创建作业(CLI):
    openclaw cron create --schedule "0 0 * * *" --command "echo 'Hello'" --payload '{"key": "value"}'
    此命令会安排作业每天午夜运行。

  • 更新作业(API):
    curl -X PUT https://api.openclaw.com/cron/jobs/{jobId} -H "Authorization: Bearer $OPENCLAW_API_KEY" -d '{"schedule": "0 30 * * *", "command": "backup.sh"}'
    将现有作业的计划更新为每小时的第 30 分钟运行。

  • 移除作业(CLI):
    openclaw cron delete --job-id 12345 --force
    删除指定作业,并使用 --force 跳过确认。

  • 调试作业(API):
    curl -X GET https://api.openclaw.com/cron/jobs/{jobId}/logs -H "Authorization: Bearer $OPENCLAW_API_KEY"
    获取日志以供调试;解析 JSON 输出以查看错误详情。

  • 修复误报(CLI):
    openclaw cron fix --job-id 12345 --filter "error_type=timeout"
    通过更新作业配置中的筛选条件来应用修复,从而忽略常见误报。

  • 清理载荷(代码片段):

    import openclaw
    client = openclaw.Client(api_key=os.environ['OPENCLAW_API_KEY'])
    sanitized_payload = client.sanitize({'command': 'echo "unsafe"; rm -rf /'})
    print(sanitized_payload)  # Outputs a safe version
    

    使用此方法在创建作业前清理用户输入的载荷。

作业的配置格式为 JSON,例如 {"schedule": "cron_expression", "command": "shell_command", "payload": {"key": "value"}}。

集成说明

在工作流中引用作业 ID,即可与其他 OpenClaw 技能集成。例如,链接到 logging 技能以增强监控。可在 CLI 命令中添加 --webhook-url 标志来使用 Webhook,例如 openclaw cron create --webhook-url "https://your.service/webhook"。在多服务设置中,通过 Docker 或 CI/CD 管道中的环境变量传递 $OPENCLAW_API_KEY。请使用最新版本的 OpenClaw SDK(v2.5+)以确保兼容性。对于外部系统,请将 cron 计划映射为 Unix crontab 等标准格式。

错误处理

常见错误包括身份验证失败(HTTP 401)、计划无效(HTTP 400)或作业冲突(HTTP 409)。可通过检查响应代码来处理:如果状态码为 401,请检查 $OPENCLAW_API_KEY。对于无效计划,请使用 openclaw cron validate --schedule "invalid" 进行验证。在代码中,使用 try-except 块:

try:
    response = client.create_job(schedule="0 0 * * *")
except openclaw.AuthError as e:
    print("Auth failed: Set $OPENCLAW_API_KEY")
except openclaw.ValidationError as e:
    print(f"Invalid input: {e}")

使用指数退避重试瞬时错误。记录所有错误,并附上作业 ID 以便追踪。

具体使用示例

  1. 创建每日备份任务:
    首先,设置 $OPENCLAW_API_KEY。然后运行:openclaw cron create --schedule "0 2 * * *" --command "rsync -a /data/ /backup/"。使用 openclaw cron list 验证。这样就能在每天凌晨 2 点自动备份,若失败,还可以排查日志。

  2. 排查并修复失败的 cron 任务:
    使用 openclaw cron list --status failed 找出任务。排查:curl -X GET https://api.openclaw.com/cron/jobs/12345/logs -H "Authorization: Bearer $OPENCLAW_API_KEY"。如果是误报,使用 openclaw cron fix --job-id 12345 --filter "status=timeout" 修复。这可以解决计划任务中的网络超时等问题。

图关系

  • 依赖于:core-openclaw(用于基础 API)
  • 相关:scheduling(用于高级定时器)、automation(用于工作流集成)
  • 冲突:无
  • 扩展:jobs(用于通用任务管理)

评论

支持 Markdown