ai_member_xiaoxi/scripts/daily_backup.sh
2026-04-15 18:52:01 +08:00

65 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
# 任务名称工作区Git备份
# 执行时间:每天 08:00
# 归属 Agentxiaoxi
# 通知对象李若松user_id: 4aagb443
set -e
export PATH=/root/.nvm/versions/node/v24.14.0/bin:$PATH
LOG_FILE="/var/log/xiaoxi_daily_backup.log"
log() {
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}
# 获取飞书token
get_token() {
local APP_ID=$(jq -r '.apps[0].appId' /root/.openclaw/credentials/xiaoxi/config.json)
local APP_SECRET=$(jq -r '.apps[0].appSecret' /root/.openclaw/credentials/xiaoxi/config.json)
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'
}
# 发送文本消息给个人user_id
send_msg() {
local TOKEN=$1
local USER_ID=$2
local TEXT=$3
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\":\"$USER_ID\",\"msg_type\":\"text\",\"content\":\"{\\\"text\\\":\\\"$TEXT\\\"}\"}" > /dev/null 2>&1
}
log "开始执行工作区备份"
# 进入工作区目录
cd /root/.openclaw/workspace
# 确保敏感文件不会被提交到Git
if ! grep -q "secrets.md" .gitignore 2>/dev/null; then
echo "secrets.md" >> .gitignore
echo "*.env" >> .gitignore
echo "memory/*.private.md" >> .gitignore
fi
# 提交所有变更
git add .
git commit -m "🤖 每日自动备份 - $(date +'%Y-%m-%d %H:%M:%S')" || { log "没有新的变更需要提交"; }
# 推送到远程仓库
TOKEN=$(get_token)
if git push; then
log "Git推送成功"
send_msg "$TOKEN" "4aagb443" "✅ 小溪工作区每日备份成功,备份时间:$(date +'%Y-%m-%d %H:%M:%S')"
else
log "Git推送失败"
send_msg "$TOKEN" "4aagb443" "❌ 小溪工作区每日备份失败请检查Git仓库配置和网络连接错误时间$(date +'%Y-%m-%d %H:%M:%S')"
exit 1
fi
log "备份任务完成"