ai_member_xiaobian/scripts/workspace_backup.sh
2026-04-10 10:53:04 +08:00

54 lines
2.1 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
# Workspace自动备份脚本基于vala_git_workspace_backup.vala规范
WORKSPACE_DIR="/root/.openclaw/workspace-xiaobian"
cd "$WORKSPACE_DIR" || exit 1
# 配置远程仓库地址
git remote set-url origin https://ai_member_only:ai%40makee260301%23@git.valavala.com/ai_member_only/ai_member_xiaobian.git || true
# 拉取最新代码
git pull origin master || true
# 提交所有变更
git add .
git commit -m "auto backup $(date +'%Y-%m-%d %H:%M:%S')" || true
# 推送到远程仓库
git push origin master || true
mkdir -p "$WORKSPACE_DIR/logs"
# 备份成功后发送通知给李若松基于user_id
COMMIT_HASH=$(git rev-parse --short HEAD)
if [ $? -eq 0 ] || [ $? -eq 1 ]; then
APP_ID=$(jq -r '.apps[0].appId' /root/.openclaw/credentials/xiaobian/config.json)
APP_SECRET=$(jq -r '.apps[0].appSecret' /root/.openclaw/credentials/xiaobian/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')
# 构造content JSON避免转义问题
CONTENT=$(printf '{"text":"✅ 小编Workspace每日自动备份完成%s\\n提交哈希%s\\n所有Workspace变更已同步到远程Git仓库"}' "$(date +'%Y-%m-%d %H:%M')" "$COMMIT_HASH")
# 使用jq生成正确的JSON格式避免转义错误
MESSAGE_TEXT="✅ 小编Workspace每日自动备份完成$(date +'%Y-%m-%d %H:%M')
提交哈希:$COMMIT_HASH
所有Workspace变更已同步到远程Git仓库"
# 构造请求体
REQUEST_BODY=$(jq -n \
--arg rid "4aagb443" \
--arg text "$MESSAGE_TEXT" \
'{
receive_id: $rid,
msg_type: "text",
content: "{\"text\":\($text | @json)}"
}')
# 发送请求
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 "$REQUEST_BODY" >> "$WORKSPACE_DIR/logs/backup.log" 2>&1
fi
echo "✅ 备份完成:$(date)"