#!/bin/bash # ============================================================================ # OpenClaw 备份通知脚本 # 功能:读取备份报告并通过企业微信发送给用户 # ============================================================================ # 读取报告文件 REPORT_FILE="$1" if [ ! -f "$REPORT_FILE" ]; then # 尝试查找最新的报告 REPORT_FILE=$(ls -t /tmp/openclaw_backup_report_*.txt 2>/dev/null | head -1) fi if [ ! -f "$REPORT_FILE" ]; then echo "❌ 未找到备份报告文件" exit 1 fi # 提取关键信息 BACKUP_NAME=$(grep "备份文件:" "$REPORT_FILE" | cut -d: -f2 | tr -d ' ') BACKUP_SIZE=$(grep "压缩包大小:" "$REPORT_FILE" | cut -d: -f2 | tr -d ' ') MEMORY_COUNT=$(grep "记忆文件:" "$REPORT_FILE" | cut -d: -f2 | tr -d ' ') SKILL_COUNT=$(grep "技能数量:" "$REPORT_FILE" | cut -d: -f2 | tr -d ' ') TOTAL_BACKUPS=$(grep "总备份数:" "$REPORT_FILE" | cut -d: -f2 | tr -d ' ') TOTAL_SIZE=$(grep "总占用:" "$REPORT_FILE" | cut -d: -f2 | tr -d ' ') # 生成通知消息 MESSAGE="🦐 OpenClaw 备份完成报告 📅 备份时间:$(date '+%Y-%m-%d %H:%M:%S') 📦 备份文件:$BACKUP_NAME 💾 压缩包大小:$BACKUP_SIZE 📊 备份内容: ✅ 核心配置 (openclaw.json) ✅ 定时任务 (cron/) ✅ 设备身份 (identity/) ✅ 企业微信配置 (wecomConfig/) ✅ 凭证文件 (credentials/) ✅ 工作区 (workspace/) - 记忆文件:$MEMORY_COUNT 个 - 自定义技能:$SKILL_COUNT 个 📋 备份统计: • 总备份数:$TOTAL_BACKUPS 个 • 总占用:$TOTAL_SIZE • 保留策略:7 天 ✅ 备份状态:成功 🧹 旧备份已清理" # 通过 OpenClaw 发送消息 # 使用 sessions_send 发送到主会话 openclaw sessions send --session-key "agent:main:wecom:direct:houhuan" --message "$MESSAGE" 2>/dev/null if [ $? -eq 0 ]; then echo "✅ 通知已发送" else # 备用方案:直接输出消息 echo "💡 通知内容:" echo "$MESSAGE" fi