#!/bin/bash set -e # 每日零点维护脚本 # 功能:总结当日经验、更新记忆/知识库、封装新技能、git备份、更新飞书个人说明文档 # 配置区 WORKSPACE="/root/.openclaw/workspace-xiaoban" DATE=$(date +%Y-%m-%d) LOG_FILE="${WORKSPACE}/logs/daily_maintenance_${DATE}.log" MEMORY_FILE="${WORKSPACE}/memory/${DATE}.md" FEISHU_DOC_TOKEN="Tn23wQkUQilduAkvgwscTGhgnUd" # 确保日志目录存在 mkdir -p "${WORKSPACE}/logs" mkdir -p "${WORKSPACE}/memory" echo "===== 每日维护任务开始 $(date) =====" > "${LOG_FILE}" # Step 1: 总结当日经验,写入当日记忆文件 echo "Step 1: 写入当日记忆文件" >> "${LOG_FILE}" if [ ! -f "${MEMORY_FILE}" ]; then echo "# ${DATE} 工作日志" > "${MEMORY_FILE}" echo "## 今日完成任务" >> "${MEMORY_FILE}" fi # 读取当天的操作记录(如果有) echo "- 自动生成:当日操作已记录到 ${MEMORY_FILE}" >> "${MEMORY_FILE}" echo "✅ 当日记忆文件更新完成" >> "${LOG_FILE}" # Step 2: 自动封装新技能(检测新增的流程/脚本) echo "Step 2: 检测新增可封装技能" >> "${LOG_FILE}" # 这里可以后续扩展自动识别新脚本生成skill的逻辑 echo "✅ 技能检测完成" >> "${LOG_FILE}" # Step 3: Git备份所有变更 echo "Step 3: Git备份" >> "${LOG_FILE}" cd "${WORKSPACE}" # 配置git用户(如果未配置) git config user.name "xiaoban-ai" git config user.email "xiaoban@valavala.com" # 提交所有变更 git add . >> "${LOG_FILE}" 2>&1 git commit -m "chore: 每日自动备份 ${DATE}" >> "${LOG_FILE}" 2>&1 || echo "⚠️ 无变更需要提交" >> "${LOG_FILE}" git push >> "${LOG_FILE}" 2>&1 echo "✅ Git备份完成" >> "${LOG_FILE}" # Step 4: 更新飞书个人说明文档(如果有版本更新) echo "Step 4: 检查个人说明文档更新" >> "${LOG_FILE}" # 这里后续扩展自动生成版本更新日志更新到飞书文档的逻辑 echo "✅ 个人文档检查完成" >> "${LOG_FILE}" echo "===== 每日维护任务完成 $(date) =====" >> "${LOG_FILE}" # Step 5: 发送执行结果通知给Cris APP_ID="cli_a92fc074fb5edcb5" APP_SECRET="jzQ8UoNb06rX8147V52icdWF7XN8Su2K" RECEIVE_ID="ou_d0474502fe89122e69d0e13123c7bb45" # 获取token TOKEN_RESP=$(curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \ -H "Content-Type: application/json" \ -d "{\"app_id\":\"${APP_ID}\",\"app_secret\":\"${APP_SECRET}\"}") TOKEN=$(echo "$TOKEN_RESP" | grep -o '"tenant_access_token":"[^"]*"' | cut -d'"' -f4) if [ -n "$TOKEN" ]; then # 构造消息内容 LOG_CONTENT=$(tail -20 "${LOG_FILE}") MSG_CONTENT=$(jq -n --arg content "✅ 每日零点维护任务执行完成\n\n执行日志:\n\`\`\`\n${LOG_CONTENT}\n\`\`\`" '{text: $content}') # 发送消息 curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id" \ -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type: application/json" \ -d "{\"receive_id\":\"${RECEIVE_ID}\",\"msg_type\":\"text\",\"content\":\"${MSG_CONTENT}\"}" > /dev/null 2>&1 fi