ai_member_xiaoban/daily_maintenance.sh
2026-03-06 00:00:01 +08:00

80 lines
3.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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