64 lines
2.0 KiB
Bash
Executable File
64 lines
2.0 KiB
Bash
Executable File
#!/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
|