C4 · 实战案例

自动化工作流实战:定时任务·监控告警·批量操作

2026-07-27

重复性工作是效率的最大杀手。每天手动检查服务状态、逐台服务器执行更新、一个个文件重命名……这些机械操作不仅耗时,还容易出错。WorkBuddy 的自动化工作流能力让你用自然语言定义规则,一次配置永久生效。本文展示三大自动化场景的配置方法。

场景一:定时任务

案例:每日自动生成运营日报

运营团队每天早上 9 点需要一份日报,包含昨日 DAU、收入、异常订单等数据。手动制作约 30 分钟,用 WorkBuddy 定时任务可以全自动完成。

# 配置定时任务
> 帮我创建一个定时任务:每天早上9点自动生成运营日报,
  数据从数据库拉取,生成 Markdown 文件发到飞书群

# WorkBuddy 生成自动化配置:

📋 定时任务配置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
名称:每日运营日报
触发:cron "0 9 * * *"(每天 09:00)
状态:已启用

执行流程:
  Step 1: 连接数据库,查询昨日数据
    SQL:
    SELECT DATE(created_at) as date,
           COUNT(DISTINCT user_id) as dau,
           SUM(amount) as revenue
    FROM orders
    WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 1 DAY)
      AND created_at < CURDATE()
    GROUP BY DATE(created_at);

  Step 2: 查询异常订单
    SQL:
    SELECT * FROM orders
    WHERE status = 'error'
      AND created_at >= DATE_SUB(CURDATE(), INTERVAL 1 DAY);

  Step 3: 生成 Markdown 日报
    模板:daily_report_template.md

  Step 4: 发送到飞书群
    Webhook: https://open.feishu.cn/open-apis/bot/v2/hook/xxx
    格式:富文本消息卡片

更多定时任务示例

# 每周一生成周报
> 每周一早上10点,汇总上周的 Git 提交记录,
  按项目分组,生成周报发到团队群

# 每月1号清理过期数据
> 每月1号凌晨3点,清理 logs 表中30天前的数据,
  先备份再删除,清理完发通知

# 每15分钟检查证书过期
> 每15分钟检查一次SSL证书,距离过期不到30天的
  自动发告警到运维群

🔔场景二:监控告警自动响应

案例:服务异常自动诊断与修复

当监控系统检测到服务异常时,WorkBuddy 可以自动执行诊断流程,甚至在安全范围内自动修复。

# 配置告警响应工作流
> 配置一个告警响应:当收到"服务CPU超过80%"的告警时,
  自动执行诊断流程:查进程→查日志→尝试重启→通知

# WorkBuddy 生成响应流程:

📋 告警响应配置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
触发条件:CPU 使用率 > 80% 持续 5 分钟
响应级别:L2(自动诊断 + 人工确认修复)

自动诊断流程:
  Step 1: 识别高 CPU 进程
    $ top -b -n 1 | head -20
    → 记录 TOP 5 进程及 CPU 占用

  Step 2: 检查最近错误日志
    $ journalctl -u {service} --since "5 min ago" | grep -i error
    → 提取最近 5 分钟错误日志

  Step 3: 检查内存和磁盘
    $ free -h && df -h
    → 排除内存泄漏或磁盘满导致的问题

  Step 4: 生成诊断报告
    → 汇总以上信息,附带建议操作

  Step 5: 发送通知
    → 飞书/企业微信推送诊断报告
    → 包含一键重启按钮(需人工确认)

自动修复示例(L3 级别)

# 配置自动修复(需明确授权)
> 对于"Redis连接超时"告警,授权自动执行:
  1. 检查Redis哨兵状态
  2. 如果主节点宕机,自动触发failover
  3. 验证新主节点就绪
  4. 重启受影响的服务

# 响应配置:
触发条件:Redis 连接超时连续 3 次
响应级别:L3(全自动修复)
授权范围:仅限 Redis 故障转移和服务重启

执行流程:
  Step 1: redis-cli -h {sentinel} info sentinel
  Step 2: redis-cli -h {sentinel} sentinel failover mymaster
  Step 3: 等待 30 秒,验证新主节点
  Step 4: systemctl restart {affected_service}
  Step 5: 健康检查确认恢复
  Step 6: 发送修复完成通知
⚠️ 自动修复的安全边界:WorkBuddy 将告警响应分为三个级别:L1(仅通知)、L2(自动诊断 + 人工确认修复)、L3(全自动修复)。L3 级别需要明确授权,且限定可执行的操作范围,防止误操作扩大故障。

📦场景三:批量操作

案例1:批量服务器更新

# 批量更新10台服务器上的Nginx配置
> 帮我批量更新所有Web服务器的Nginx配置,
  服务器列表在 [上传 servers.csv],
  新配置文件在 [上传 nginx.conf.new],
  先备份再替换,逐台执行,每台执行后验证

# WorkBuddy 执行批量操作:

📋 批量操作计划
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
目标:10 台 Web 服务器
操作:更新 Nginx 配置
策略:逐台执行(非并行),每台验证后才继续下一台

执行进度:
  [1/10] 10.0.1.10  → 备份 ✅ 替换 ✅ reload ✅ 验证 ✅
  [2/10] 10.0.1.11  → 备份 ✅ 替换 ✅ reload ✅ 验证 ✅
  [3/10] 10.0.1.12  → 备份 ✅ 替换 ✅ reload ❌ 配置语法错误
    → 自动回滚到备份版本 ✅
    → 跳过后续服务器,发送告警
    → 原因:该服务器 Nginx 版本不支持新指令

  ⚠️ 操作中断:第3台失败,已自动回滚
  ✅ 前2台更新成功,后7台未执行(安全策略)

案例2:批量文件处理

# 批量重命名和压缩图片
> 把 /assets/products/ 下的所有图片:
  1. 按产品SKU重命名(从对应的CSV读取映射)
  2. 压缩到 WebP 格式,质量85
  3. 生成缩略图 300×300

# WorkBuddy 执行:

📋 批量文件处理
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
源文件:247 张产品图片
映射表:[上传 product_sku_map.csv]

处理进度:
  ✅ 重命名:247/247 完成
  ✅ WebP 压缩:247/247 完成(平均压缩率 62%)
  ✅ 缩略图生成:247/247 完成

  原始总大小:384 MB
  处理后总大小:146 MB(节省 238 MB)

案例3:批量数据库操作

# 批量更新测试环境数据库
> 把测试环境所有用户的手机号脱敏,
  替换为 1380000+原号后4位

# WorkBuddy 执行(自动分批):

📋 批量数据更新
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
目标:test_db.users 表
影响行数:15,234 条
策略:分批执行,每批 1000 条,每批提交前验证

  批次 1: 1-1000    ✅
  批次 2: 1001-2000  ✅
  ...
  批次 16: 15001-15234 ✅

  全部完成,总耗时 23 秒
  验证:抽样 100 条确认脱敏正确 ✅

🛡️自动化安全原则

📚 参考资料

💬 你对 WorkBuddy 有什么疑问?或者已经在用了,有什么心得想分享?欢迎在下方留言讨论!