ai_member_xiaoban/scripts/backup_workspace.sh
2026-04-10 10:48:20 +08:00

67 lines
2.7 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
# 配置信息
AGENT_NAME="xiaoban"
WORK_DIR="/root/.openclaw/workspace-xiaoban"
LOG_FILE="${WORK_DIR}/logs/backup.log"
mkdir -p "${WORK_DIR}/logs"
# 进入workspace目录
cd "$WORK_DIR" || exit 1
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始备份工作区..." >> "$LOG_FILE"
# 配置git信息
git config user.name "xiaoban"
git config user.email "xiaoban@valavala.com"
# 添加所有文件,自动排除.gitignore里的内容包括secrets.md
git add .
# 提交变更
COMMIT_MSG="自动备份 $(date +'%Y-%m-%d %H:%M:%S')"
git commit -m "$COMMIT_MSG" || echo "无变更需要提交" >> "$LOG_FILE" 2>&1
# 推送到远程仓库
git push https://git.valavala.com/ai_member_only/ai_member_xiaoban master >> "$LOG_FILE" 2>&1
if [ $? -eq 0 ]; then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 工作区备份成功:$COMMIT_MSG" >> "$LOG_FILE"
# 备份成功给李若松发消息基于user_id
APP_ID=$(jq -r '.apps[0].appId' /root/.openclaw/credentials/xiaoban/config.json)
APP_SECRET=$(jq -r '.apps[0].appSecret' /root/.openclaw/credentials/xiaoban/config.json)
TOKEN=$(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\"}" \
| jq -r '.tenant_access_token')
curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=user_id" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"receive_id": "4aagb443",
"msg_type": "text",
"content": "{\"text\":\"✅ xiaoban工作区自动备份成功仓库地址https://git.valavala.com/ai_member_only/ai_member_xiaoban\"}"
}' > /dev/null 2>&1
exit 0
else
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 工作区备份失败,请检查日志:${LOG_FILE}" >> "$LOG_FILE"
# 备份失败通知
APP_ID=$(jq -r '.apps[0].appId' /root/.openclaw/credentials/xiaoban/config.json)
APP_SECRET=$(jq -r '.apps[0].appSecret' /root/.openclaw/credentials/xiaoban/config.json)
TOKEN=$(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\"}" \
| jq -r '.tenant_access_token')
curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=user_id" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"receive_id": "4aagb443",
"msg_type": "text",
"content": "{\"text\":\"❌ xiaoban工作区自动备份失败请检查日志/root/.openclaw/workspace-xiaoban/logs/backup.log\"}"
}' > /dev/null 2>&1
exit 1
fi