Skip to content

2.7 定时任务与后台执行 — 让 AI 自动巡逻

学习目标:掌握 Claude Code 的三种自动化执行方式(后台任务、循环执行、定时调度);学会配置 AI 自动巡逻代码安全、文档更新、CI 监控等场景;理解"人不在,AI 在干活"的工作模式。


为什么需要自动化执行

到目前为止,我们和 Claude Code 的交互都是"你说一句,它做一件"。但很多事情其实不需要你盯着:

  • 每天扫一遍代码有没有安全漏洞
  • 每隔 10 分钟看看 CI/CD 流水线是不是又挂了
  • 每周自动更新一次项目文档
  • 定期清理积累的技术债

这些重复性的巡逻工作,交给 AI 自动跑就好了。你去喝咖啡、开会、甚至睡觉,AI 在后台默默干活。


方式一:Background Tasks — 后台执行长任务

有些任务需要跑很久——比如审查整个项目的代码质量,或者分析几千行日志。你不想干等着,想继续做别的事。

怎么用

在交互模式中,直接告诉 Claude Code 你要做的事情,然后按 Escape 键让它在后台继续执行。你可以继续在终端做别的操作。

更直接的方式是用管道模式加 & 放到后台:

bash
# 后台执行代码审查,结果输出到文件
claude -p "对整个项目做一次全面的代码安全审查,输出报告" > security-report.md &

# 后台分析性能瓶颈
claude -p "分析 src/ 目录下所有文件的性能问题,给出优化建议" > perf-report.md &

[截图: 终端中后台执行 claude -p 命令,显示进程号,同时用户继续执行其他命令]

查看后台任务状态

bash
# 查看正在运行的后台任务
jobs

# 把后台任务拉回前台
fg %1

更优雅的做法:用 tmux 隔离

如果你有多个长时间运行的 AI 任务,推荐用 tmux 做会话隔离:

bash
# 创建一个专门给 AI 跑任务的窗口
tmux new-session -d -s ai-worker

# 在 AI 窗口中运行任务
tmux send-keys -t ai-worker "claude -p '审查整个项目的代码质量' > quality-report.md" Enter

# 随时查看 AI 的工作进度
tmux attach -t ai-worker

[截图: tmux 分屏,左边是正常开发,右边是 AI 后台跑审查任务]

不用后台执行:你发出一个"审查整个项目"的指令,然后呆坐在终端前等 5 分钟,什么都干不了。

用了后台执行:指令发出去,你继续写代码。AI 跑完了,报告已经安静地躺在文件里等你看。


方式二:/loop 循环执行 — 定时重复巡逻

后台执行解决了"跑一次不阻塞"的问题,但有些事情需要反复跑——比如每 5 分钟检查一次部署状态。这时候就需要 /loop

基本语法

bash
/loop 5m 检查 CI/CD 流水线状态,如果有失败的 job,总结失败原因

这条命令的意思是:每 5 分钟执行一次,检查 CI 状态。Claude Code 会自动重复执行,直到你手动停止。

常见循环场景

bash
# 每 10 分钟检查部署状态
/loop 10m 运行 gh run list --limit 5 查看最近的 GitHub Actions 状态,如果有失败的,分析原因

# 每 30 分钟扫描代码变更
/loop 30m 检查最近 30 分钟的 git 提交,审查是否有安全风险

# 每小时更新项目文档
/loop 1h 检查 src/ 目录下最近修改的文件,如果 README.md 中的描述过时了就更新它

[截图: /loop 命令执行中,显示"下次执行倒计时"和上一次执行的结果摘要]

停止循环

Ctrl+C 或使用 /loop-status 查看当前活跃的循环任务,然后停止不需要的。

bash
# 查看正在运行的循环任务
/loop-status

[截图: /loop-status 显示当前有 2 个活跃的循环任务及其下次执行时间]

循环执行的注意事项

  • 每次循环都会消耗 token,注意费用。建议设置 --max-budget-usd 做上限保护。
  • 循环间隔不要太短。5 分钟以下的间隔很少有必要,大多数巡逻任务 10-30 分钟足够。
  • 循环任务适合"检查状态并报告"这类轻量操作,不适合"每隔 5 分钟重构一次代码"这种重活。

方式三:Scheduled Tasks — cron 定时调度

/loop 是在你的会话存活期间运行的。一旦你关了终端,循环就停了。如果你想要的是"每天凌晨 3 点自动跑一次安全扫描"这种持久化的定时任务,就需要 Scheduled Tasks(也叫 Triggers)。

用 /schedule 创建定时任务

bash
/schedule

这个命令会引导你配置一个远程定时 agent,它按照 cron 表达式定时触发,独立于你的终端运行。

bash
# 创建一个每天凌晨 3 点执行的安全扫描任务
/schedule create --cron "0 3 * * *" --prompt "对项目做全面安全扫描,发现高危问题时生成 GitHub Issue"

# 创建一个每周一早上 9 点执行的文档更新任务
/schedule create --cron "0 9 * * 1" --prompt "检查本周的代码变更,更新 README 和 API 文档"

# 创建一个每天下午 6 点执行的技术债盘点
/schedule create --cron "0 18 * * *" --prompt "扫描项目中的 TODO、FIXME、HACK 注释,生成技术债清单"

[截图: /schedule create 命令的交互式配置界面,显示 cron 表达式和 prompt 输入]

管理已有的定时任务

bash
# 列出所有定时任务
/schedule list

# 查看某个任务的执行历史
/schedule history <task-id>

# 手动触发一次(不等 cron 时间)
/schedule run <task-id>

# 删除不需要的任务
/schedule delete <task-id>

[截图: /schedule list 输出的任务列表,包含任务名、cron 表达式、上次执行时间和状态]

用系统 cron + CLI 管道模式实现类似效果

如果你不想用内置的 /schedule,也可以直接用系统自带的 crontab 配合 Claude Code 的管道模式:

bash
# 编辑 crontab
crontab -e

添加以下内容:

cron
# 每天凌晨 3 点:安全扫描
0 3 * * * cd /path/to/project && claude -p "执行安全扫描,检查硬编码密钥、SQL注入风险、XSS漏洞" --max-budget-usd 1.00 > /tmp/security-scan-$(date +\%Y\%m\%d).md 2>&1

# 每周一早上 9 点:文档更新
0 9 * * 1 cd /path/to/project && claude -p "检查最近一周的代码变更,更新项目文档" --max-budget-usd 0.50 > /tmp/doc-update-$(date +\%Y\%m\%d).md 2>&1

# 每 6 小时:CI 状态检查
0 */6 * * * cd /path/to/project && claude -p "检查 GitHub Actions 最近的运行状态,如有失败发送摘要" --max-budget-usd 0.25 > /tmp/ci-check-$(date +\%Y\%m\%d-\%H).md 2>&1

[截图: crontab -l 显示配置好的三个定时任务]

这种方式更底层、更灵活,适合有 Linux 经验的同学。不熟悉 cron 也没关系,/schedule 已经把这些复杂性都封装好了。


四大实战场景

学会了三种执行方式,我们来看怎么组合使用。

场景一:定时代码安全扫描

安全漏洞不等人。与其等到上线前手忙脚乱地扫,不如让 AI 每天自动巡逻。

bash
# 每天凌晨自动扫描
/schedule create --cron "0 3 * * *" --prompt "扫描整个项目的安全风险:1.硬编码的密钥或密码 2.SQL注入风险 3.XSS漏洞 4.不安全的依赖版本。发现高危问题时创建 GitHub Issue。"

场景二:自动文档更新

文档过时是每个项目的通病。AI 帮你盯着。

bash
# 每周一自动检查并更新
/schedule create --cron "0 9 * * 1" --prompt "对比 src/ 目录的代码和 docs/ 目录的文档,找出不一致的地方并更新文档。重点关注新增的函数、修改的API参数、废弃的接口。"

场景三:监控 CI/CD 状态

CI 挂了半天没人发现?让 AI 替你盯着。

bash
# 工作时间内每 30 分钟检查一次
/loop 30m 执行 gh run list --limit 10,如果有失败的 workflow,分析失败原因并给出修复建议

场景四:定期清理技术债

技术债像滚雪球,不定期清理就会越积越多。

bash
# 每周五下午盘点技术债
/schedule create --cron "0 17 * * 5" --prompt "扫描项目中所有 TODO、FIXME、HACK 注释,按严重程度排序,生成本周技术债报告,保存到 docs/tech-debt-report.md"

[截图: AI 自动生成的技术债报告,按 CRITICAL / HIGH / MEDIUM 分类列出]


三种方式怎么选

特性Background Tasks/loop 循环Scheduled Tasks
执行频率一次性重复(会话内)重复(持久化)
终端关了还跑吗
适合什么耗时长的一次性任务会话期间的状态监控每天/每周的自动化巡逻
典型场景全项目代码审查监控 CI 状态每日安全扫描
费用控制--max-budget-usd注意循环次数每次触发独立计费

选择原则很简单:

  • 跑一次就行 --> Background Tasks
  • 盯一会儿 --> /loop
  • 长期自动化 --> Scheduled Tasks / cron

小结

  • Claude Code 不只是"你问它答"的工具,它可以在后台持续工作,像一个 7x24 在岗的 AI 值班员。
  • Background Tasks:把耗时任务扔到后台,不阻塞你的开发。配合 tmux 更优雅。
  • /loop 循环执行:在会话期间定时重复巡逻,适合短期状态监控。
  • Scheduled Tasks:通过 /schedule 或系统 crontab 配置持久化定时任务,关机了也照跑。
  • 四个高频场景:安全扫描、文档更新、CI 监控、技术债清理——这些都不需要你亲自盯着。
  • 费用意识:自动化任务每次执行都消耗 token,务必用 --max-budget-usd 给每次执行设上限。

用 Claude Code 构建,用 VitePress 驱动