很多人把 Codex 当成"能帮你写代码的 ChatGPT",但它的真正威力在于:让它替你跑任务、做巡检、定时间、看结果。
这篇文章从安装验证开始,逐步带你完成从简单脚本到完整自动化工作流的全套配置。无论你是想做一个磁盘监控小脚本,还是搭建一套每日 CI 巡检系统,都能在这里找到可直接落地的方案。
一、先确认链路通:第一次交互测试
安装 Codex CLI 后,不要上来就跑复杂任务。先做这一步:
codex exec "用 Python 写一个打印当前时间的脚本"
观察三个指标: - 能否正常调用模型并返回结果 - 返回的是否是有效的 Python 代码 - 终端有没有超时或模型不可用的报错
建议:第一次测试不要指定太复杂的任务,也不要让它直接修改系统文件。先确认"调用 → 生成 → 输出"这条链路通了,再逐步提高复杂度。
二、用 Codex 生成定时任务脚本
场景:每小时检查磁盘空间并写日志
在 Codex 中直接描述需求:
写一个 Python 脚本,检查当前磁盘使用率,如果超过 80% 就在 /var/log/disk_check.log 里追加一条带时间戳的告警日志
Codex 会生成类似这样的代码:
import shutil
import datetime
def check_disk():
usage = shutil.disk_usage("/")
percent = usage.used / usage.total * 100
if percent > 80:
with open("/var/log/disk_check.log", "a") as f:
f.write(f"{datetime.datetime.now()} 磁盘使用率: {percent:.2f}%\n")
if __name__ == "__main__":
check_disk()
拿到代码后先做代码审查:路径是否正确、权限是否足够、逻辑是否符合预期。Codex 生成代码的速度很快,但最终审查责任在你。
更复杂的需求:用模板化方式描述
不要只说"写个定时任务",用这个模板会让 Codex 生成更可用的代码:
请实现一个定时任务脚本。
语言:Python 3
功能:扫描本地 data 目录下的 CSV 文件,解析后写入 MySQL 数据库。
运行频率:每天 21:00
要求:
1. 每个文件处理成功后,把原文件移动到 archive 目录。
2. 失败时把错误信息写入 logs/etl_error.log。
3. 重复运行时不重复写入相同数据。
需求越清晰,Codex 生成的代码越接近可用状态。
三、配置系统定时调度器
Linux / macOS:使用 cron
编辑 crontab:
crontab -e
添加任务(每小时第 5 分钟执行):
5 * * * * /usr/bin/python3 /path/to/disk_check.py
查看已注册任务:
crontab -l
常用 cron 表达式速查:
| 需求 | 表达式 |
|---|---|
| 每分钟 | * * * * * |
| 每小时第 5 分钟 | 5 * * * * |
| 每天 9:00 | 0 9 * * * |
| 工作日 9:00 | 0 9 * * 1-5 |
| 每周日凌晨 3:00 | 0 3 * * 0 |
| 每月 1 号上午 8:00 | 0 8 1 * * |
Windows:使用任务计划程序
打开"任务计划程序" → 创建基本任务 → 设置触发器(每天/每周/每月)→ 操作选择"启动程序" → 程序填 python.exe,参数填脚本路径。
四、验证任务是否真的生效
很多人配置完 crontab 就以为任务已经生效——这是最大误区。 正确的验证步骤:
- 手动执行一次,确认脚本本身没问题:
bash python /path/to/disk_check.py - 等待触发时间,查看日志文件是否有写入。
- 查看系统调度日志,确认任务被调度器触发过:
- Linux:
grep CRON /var/log/syslog- Windows:任务计划程序 → 历史记录
如果手动执行能写日志,但定时任务没有触发,问题大概率出在路径或权限上。
五、Codex Automations:后台自动运行任务
Codex 内置了 Automations 功能,可以让 Codex 在后台按计划运行任务,结果自动投放到 Triage / inbox 中。这是比 cron 更高级的方案,特别适合"需要 Codex 参与推理判断"的任务。
两类自动化对比
| 类型 | 适用场景 | 特点 |
|---|---|---|
| Thread automation | 绑定当前线程,保留上下文 | 适合持续跟进(等 CI、追 PR review) |
| Standalone automation | 每次独立运行 | 适合周期性检查(每日健康报告) |
示例 1:Thread Automation — 监控部署进度
在 Codex 界面输入:
创建一个线程自动化:每 10 分钟检查一次这个部署是否完成。 如果部署成功,总结结果并停止提醒。 如果失败,说明失败原因。 如果还在进行中,只保留简短状态。
示例 2:Standalone Automation — 每日测试健康检查
创建一个独立自动化:每个工作日上午 9 点检查这个项目的测试健康状况。 任务: - 查看最近一次测试结果 - 找出新出现的失败 - 如果没有问题,自动归档 - 如果有问题,放入 Triage 并给出修复建议
示例 3:Automation + Skill 组合
先创建一个 Skill(比如 $release-check),然后让 Automations 定时触发它:
每天早上 9 点运行 $release-check。 如果发现 blocker,把结果放到 Triage。 如果没有发现问题,自动归档。
核心原则:Automation 负责"什么时候运行",Skill 负责"怎么运行"。
六、安全边界:权限一定要控
Automations 是无人值守执行的,权限控制尤为重要:
| 权限级别 | 能力 | 适用场景 |
|---|---|---|
read-only |
只读,不能改文件或访问网络 | 查看日志、读配置文件 |
workspace-write |
可改工作区文件 | 大多数自动化任务 |
full access |
可操作整个系统 | 不推荐长期默认使用 |
建议在 Git 仓库中使用 worktree 隔离自动化改动,避免多个任务互相干扰。
七、报错排查:按这个顺序来
遇到报错时,按顺序排查比"看到什么改什么"更有效:
- 看完整报错文本——只截一句话看不出问题,把上下文日志都拿到。
- 确认网络环境——CLI 需要联网访问官方服务,网络不通会出现各种诡异报错。
- 检查配置文件——重点看模型名称、端点地址、登录信息。常见报错
config.toml 无法加载通常是因为编码问题或模型名不匹配。 - 检查依赖版本——Node.js 版本过低会影响 CLI 运行。
- 最后才考虑重装。
高频报错对照表
| 报错 | 可能原因 | 排查方向 |
|---|---|---|
model not supported |
账号类型与模型不匹配 | 确认账号支持的模型列表 |
config.toml 无法加载 |
编码或字段错误 | 检查 UTF-8 编码、模型名 |
cc switch local proxy failed |
代理配置异常 | 检查本地代理和端点配置 |
command not found |
npm 全局路径不在 PATH | 检查环境变量 |
八、让 Codex 参与持续维护
定时任务上线后,Codex 还能帮你做这些事:
- 解释复杂日志——把日志片段喂给 Codex,让它总结失败原因。
- 修改脚本参数——路径变了、频率要调,直接让 Codex 改。
- 分析失效原因——把脚本内容、日志、调度器状态一起给它,准确率更高。
- 把脚本改造为分布式版本——单机 cron 升级为任务队列或调度框架。
提问技巧:信息越全,答案越准
❌ 错误问法:
我的定时任务不跑了。
✅ 正确问法:
我有一个 cron 任务,每天早上 9 点执行 Python 脚本 data_sync.py,最近两天没有生成日志。任务调度器显示上次运行时间是今天早上 9 点,退出码为 0。我检查过脚本路径存在,Python 版本未变。请帮我分析可能原因和后续排查步骤。
九、落地前的黄金法则
- 先小样验证,再全量部署——先跑一条数据,确认输出符合预期,再挂到调度器。
- 给脚本做版本管理——哪怕只是本地一个简单的 Git 仓库,也比直接改文件强。
- 定期复盘任务日志——每周打开日志目录,看有多少任务成功、多少失败、失败原因是什么。
- 涉及金钱、数据删除、用户通知的任务,必须人工审核——这是底线,不是效率问题。
十、适合新手练手的几个小任务
刚装上 Codex 不知道从哪下手?从这些开始:
- 让它解释一段你看不懂的代码。
- 让它写一个带日志的 Python 定时任务脚本。
- 让它分析一个最近报错的任务日志。
- 让它帮你优化一段定时任务的执行逻辑。
来源:编程知识《Codex 定时任务实战:安装配置、脚本生成与报错排查全攻略》(hqwc.cn,2026-09-24) 延伸参考:Codex 官方文档 Automations 配置指南
资料最后核对日期:2026-09-24 · 内容整理自 CodexGuide 社区公开教程