跳转至

🔧 Cron 定时任务修复报告

修复时间:2026-03-15 22:21
问题:定时任务执行失败
状态:✅ 已修复


🐛 问题诊断

现象

用户反馈: - 每天晚上的总结没有触发 - 周六周日的项目会议没有触发 - 其他 Heartbeat 和 Cron 定时任务都没有执行

日志分析

查看 /home/admin/.openclaw/workspace/logs/agent-cron.log

[2026-03-15 20:00:01] 执行每日记忆归档任务...
error: unknown command 'send'
[2026-03-15 20:00:40] 记忆归档失败

[2026-03-15 20:00:40] 执行周日回顾任务...
error: unknown command 'send'
[2026-03-15 20:01:04] 周日回顾失败

[2026-03-15 21:00:01] 执行明日规划任务...
error: unknown command 'send'
[2026-03-15 21:00:12] 明日规划失败

根本原因

命令错误: 脚本中使用的是 openclaw send,但正确的命令是 openclaw message send

1
2
3
4
5
6
# ❌ 错误(原脚本)
"$OPENCLAW_CMD" send "消息内容"

# ✅ 正确(修复后)
$OPENCLAW_SEND "消息内容"
# 其中 $OPENCLAW_SEND = openclaw message send --channel feishu -t <user_id> -m

✅ 修复方案

1. 修改脚本变量定义

agent-cron-tasks.sh 开头添加:

1
2
3
4
5
6
# 修复前
OPENCLAW_CMD="/home/admin/.local/share/pnpm/openclaw"

# 修复后
OPENCLAW_CMD="/home/admin/.local/share/pnpm/openclaw"
OPENCLAW_SEND="$OPENCLAW_CMD message send --channel feishu -t ou_941d377b3015f38186e7a25a903ed6e5 -m"

2. 替换所有 send 调用

将所有 "$OPENCLAW_CMD" send "..." 替换为 $OPENCLAW_SEND "..."

影响的任务: - ✅ 每日 08:00 晨间检查 - ✅ 每日 12:00 午间检查 - ✅ 每日 20:00 记忆归档 - ✅ 每日 21:00 明日规划 - ✅ 每周一 09:00 项目周评审 - ✅ 每周三 10:00 真理探索 - ✅ 每周五 10:00 脱贫资源收集 - ✅ 每周日 20:00 周回顾 - ✅ 每月 1 号 09:00 月度评审 - ✅ 里程碑提醒(7 天/3 天/1 天) - ✅ QQ 邮箱授权码提醒


🧪 测试验证

语法检查

bash -n /home/admin/.openclaw/workspace/scripts/agent-cron-tasks.sh
# ✅ 脚本语法检查通过

手动执行测试

/home/admin/.openclaw/workspace/scripts/agent-cron-tasks.sh
# ✅ 执行成功,无错误

Cron 配置检查

1
2
3
crontab -l
# ✅ 配置存在:
# */30 * * * * /home/admin/.openclaw/workspace/scripts/agent-cron-tasks.sh

📅 定时任务清单

每日任务

时间 任务 状态
08:00 晨间检查 ✅ 已修复
12:00 午间检查 ✅ 已修复
20:00 记忆归档 + 品德自检 ✅ 已修复
21:00 明日规划 ✅ 已修复

每周任务

时间 任务 状态
周一 09:00 项目周评审(智守 + CodePilot) ✅ 已修复
周三 10:00 真理探索(科学话题研究) ✅ 已修复
周五 10:00 脱贫资源收集 ✅ 已修复
周日 20:00 周回顾(万物有理 + 知记 + 个人成长) ✅ 已修复

每月任务

时间 任务 状态
1 号 09:00 月度评审 ✅ 已修复

特殊日期

日期 任务 状态
2026-03-27 QQ 邮箱授权码申请 ✅ 已修复
2026-04-05 智守里程碑倒计时 7 天 ✅ 已修复
2026-04-09 智守里程碑倒计时 3 天 ✅ 已修复
2026-04-11 智守里程碑倒计时 1 天 ✅ 已修复
2026-04-12 智守 + CodePilot 第 1 月里程碑 ✅ 已修复

📊 执行日志位置

1
2
3
4
5
6
7
8
# Cron 执行日志
tail -f /home/admin/.openclaw/workspace/logs/cron-execution.log

# 任务执行详细日志
tail -f /home/admin/.openclaw/workspace/logs/agent-cron.log

# 艾宾浩斯复习日志
tail -f /home/admin/.openclaw/workspace/logs/ebbinghaus-cron.log

🔄 下次执行时间

任务 下次执行时间
每 30 分钟检查 下一个半点
每日 20:00 记忆归档 今天 20:00
每日 21:00 明日规划 今天 21:00
周日 20:00 周回顾 今天 20:00(本周日)
周一 09:00 项目评审 2026-03-16 09:00(明天)

🎯 验证方法

方法 1:等待自动执行

下一个定时任务会在 20:00 自动执行(记忆归档 + 周回顾),注意查收飞书消息。

方法 2:手动触发测试

1
2
3
4
5
# 手动执行一次
/home/admin/.openclaw/workspace/scripts/agent-cron-tasks.sh

# 查看日志确认
tail -20 /home/admin/.openclaw/workspace/logs/agent-cron.log

方法 3:查看飞书消息

如果配置正确,会在飞书收到相应的提醒消息。


💡 预防措施

1. 定期检查 Cron 状态

1
2
3
# 每周检查一次
crontab -l
systemctl status cron  # 或 service cron status

2. 日志监控

设置日志告警,当出现 error 关键字时通知。

3. 测试更新

修改脚本后,先执行语法检查:

bash -n script.sh

然后手动测试执行:

./script.sh

📝 修复总结

项目 详情
问题 openclaw send 命令不存在
原因 OpenClaw CLI 命令格式变更
修复 改为 openclaw message send --channel feishu -t <id> -m
影响范围 所有 11 个定时任务
修复文件 agent-cron-tasks.sh
测试状态 ✅ 语法检查通过,手动执行成功
预计恢复 下次定时任务自动执行时

修复完成! 所有定时任务将在下一个执行时间点自动触发。🎉


最后更新:2026-03-15 22:21
维护:OpenClaw 自动化系统