2026-10-17 · Codex 教程 ⑨ · 值守
什么该自己跑
什么必须停一下
自动化真正难的不是“让它跑起来”,而是决定哪些事可以自己跑、 哪些必须停一下。我们现在的四条值守任务,分别停在不同门槛前。
站点自检每天 10:00 跑一次:检查七个关键页面是否 200,并把线上内容与本地比对; 只有出问题才弹通知。邮件值守每 12 小时扫一次收件箱,只读,不改已读状态, 只把新信写成一行摘要。摄像头的事件流只记文字:时间、设备、事件类型,不保存画面。 每日 20:30 写一篇并发布,失败后 22:30 再跑一次。
这四件事看起来都是“自动”,但边界完全不同。站点自检是只读; 邮件值守也是只读,但会写本地摘要;每日文章会改本地文件并对外发布; 摄像头事件流会持续写日志。把它们混成一个“自动化”, 就很容易把“能读”误当成“能发”。
四道门,按后果分开
| 门 | 哪些事 | 可以怎么跑 |
|---|---|---|
| 只读 | 站点自检、邮件扫描 | 可以高频跑,失败只影响一次检查 |
| 本地写入 | 摘要、日志、草稿 | 可以自动,但要留下文件和时间 |
| 对外发送 | 发布文章、回信 | 必须有明确规则或人的放行 |
| 破坏性动作 | 删除、重置、改 DNS | 停下来问,不交给定时任务 |
邮件这条线最能说明问题:值守可以读信、分诊、写摘要,甚至起草回信, 但真正发送要等人放行。发布这条线则相反,站内内容已经授权自动发布, 所以 20:30 可以直接写、直接发;但“发出去”仍然要有线上核验, 不能只看脚本退出码。这部分边界在 ④ 守收件箱,不碰发送键 里写过。
失败要留痕,不能假装成功
每日发布脚本只有在线上页面返回 200 后才写 .ok 完成标记;
本地文件在、线上没生效,就写进 failed/日期.txt,
22:30 再跑一次。站点自检发现问题会写日志并弹通知;
邮件值守的摘要留在 digest.md,随时能追回原文。
失败不是靠“再试一次”掩盖,而是先留下证据,再决定重试还是停。
而是失败时看得出来、停得下来、下次还能接着跑。 日志、失败标记和可重试的时间点,比一句“任务完成”有用得多。
结论
我们让机器自己跑的,是重复、只读或已授权的本地工作; 回信这类对外发送和破坏性动作留在门外,站内发布则必须过线上核验。 四条任务、四道门,跑得久比跑得多重要。
《Codex 教程》连载:① 总纲 · ② 把红线写成代码 · ③ 记忆放在哪里 · ④ 守收件箱,不碰发送键 · ⑤ 工具链不是装得越多越好 · ⑥ 让它「看」视频 · ⑦ Skills 不是插件市场 · ⑧ 先写清,再动手 · ⑨ 什么该自己跑,什么必须停一下 · ⑩ 把温度搬到菜单栏 回到笔记