📦 添加文档和更新监控脚本 - 2026-03-23

This commit is contained in:
huan 2026-03-23 15:44:57 +08:00
parent 06ba61fd2f
commit 7e143d3ebc
4 changed files with 641 additions and 24 deletions

300
workspace/README.md Normal file
View File

@ -0,0 +1,300 @@
> 作者:欢欢助理
> 日期2026-03-21
> 版本v1.0
---
## 一、方案概述
### 1.1 背景
为了防止机器崩溃导致 OpenClaw 配置丢失,我们需要建立完整的备份机制。
### 1.2 备份目标
| 备份项 | 说明 | 大小 |
|--------|------|------|
| OpenClaw 配置 | agents、extensions、skills、feishu、wecomConfig、cron | ~100MB |
| 工作区 | workspace 目录 | ~1MB |
| 向量记忆 | vector_memory 数据 | ~1MB |
### 1.3 备份策略
| 备份位置 | 频率 | 方式 |
|----------|------|------|
| 本地 | 每天 3:00 | 自动备份到 `~/openclaw-backup/` |
| Gitea | 每天 4:00 | 推送到远程仓库 |
---
## 二、详细部署步骤
### 2.1 环境准备
#### 第 1 步:安装依赖
```bash
# 更新系统
sudo apt-get update
# 安装 Python 和 pip
sudo apt-get install -y python3-pip
# 安装 Git通常已预装
which git # 检查是否已安装
```
#### 第 2 步:克隆备份仓库
```bash
# 克隆 Gitea 仓库
cd ~
git clone https://gitea.94kan.cn/houhuan/openclaw-home-pc.git openclaw-backup
# 进入目录
cd openclaw-backup
```
#### 第 3 步:配置 Git
```bash
# 配置用户名(用于提交记录)
git config user.email "你的邮箱@example.com"
git config user.name "你的名字"
```
#### 第 4 步:配置远程仓库认证(可选)
如果需要自动推送,需要配置 Access Token
```bash
# 方式:使用 Token 修改远程地址
git remote set-url origin https://用户名:TOKEN@gitea.94kan.cn/houhuan/openclaw-home-pc.git
```
### 2.2 备份脚本使用
#### 手动运行备份
```bash
cd ~/openclaw-backup
# 添加需要备份的文件
git add -A
# 提交
git commit -m "更新备份 - $(date '+%Y-%m-%d')"
# 推送到 Gitea
git push origin master
```
#### 自动定时备份
已配置 Cron 定时任务:
```bash
# 查看定时任务
crontab -l
# 输出0 4 * * * cd ~ && cd openclaw-backup && git add -A && git commit -m "备份 $(date '+\%Y-\%m-\%d')" && git push origin master
```
### 2.3 向量记忆系统备份
向量记忆系统有独立的备份机制:
#### 本地备份
```bash
cd ~/openclaw-memory-vector
export SILICONFLOW_API_KEY="你的API Key"
# 手动备份
python3 memory_backup.py backup
```
备份文件位置:`~/openclaw-memory-vector/backups/`
#### 定时备份
已在 OpenClaw 中配置定时任务:每天凌晨 3:00 自动执行备份。
---
## 三、恢复指南
### 3.1 一键恢复(推荐 ✅)
全新安装 OpenClaw 后,只需一行命令即可恢复全部配置:
```bash
# 克隆仓库
git clone https://gitea.94kan.cn/houhuan/openclaw-home-pc.git ~/openclaw-backup
# 一键恢复
cd ~/openclaw-backup
./restore.sh
```
**恢复脚本会自动:**
- 备份现有配置(如有)
- 恢复 OpenClaw 配置 → `~/.openclaw/`
- 恢复工作区 → `~/.openclaw/workspace/`
- 恢复向量记忆 → `~/openclaw-memory-vector/`
**恢复后重启服务:**
```bash
openclaw gateway restart
```
---
### 3.2 手动恢复(备用)
如果不想用脚本,也可以手动复制:
#### 第 1 步:克隆仓库
```bash
git clone https://gitea.94kan.cn/houhuan/openclaw-home-pc.git ~/openclaw-backup
```
#### 第 2 步:恢复 OpenClaw 配置
```bash
# 恢复配置文件
cp -r ~/openclaw-backup/openclaw/* ~/.openclaw/
# 恢复工作区
cp -r ~/openclaw-backup/workspace/* ~/.openclaw/workspace/
```
#### 第 3 步:恢复向量记忆
```bash
# 恢复数据
cp -r ~/openclaw-backup/vector_memory/data/* ~/openclaw-memory-vector/data/
# 恢复备份
cp -r ~/openclaw-backup/vector_memory/backups ~/openclaw-memory-vector/
```
#### 第 4 步:安装依赖
```bash
# 安装 Python 依赖
pip3 install chromadb openai sqlalchemy
```
### 3.3 部分恢复
如果只需要恢复特定配置:
| 恢复目标 | 命令 |
|----------|------|
| 仅配置 | `cp -r openclaw/openclaw.json ~/.openclaw/` |
| 仅技能 | `cp -r openclaw/skills ~/.openclaw/` |
| 仅插件 | `cp -r openclaw/extensions ~/.openclaw/` |
| 仅工作区 | `cp -r workspace/* ~/.openclaw/workspace/` |
---
## 四、备份内容详解
### 4.1 目录结构
```
openclaw-home-pc/
├── .git/ # Git 仓库
├── .gitignore # 忽略配置
├── openclaw/ # OpenClaw 配置
│ ├── agents/ # Agent 配置
│ ├── extensions/ # 插件(飞书、企微)
│ ├── skills/ # 技能
│ ├── feishu/ # 飞书配置
│ ├── wecomConfig/ # 企微配置
│ ├── cron/ # 定时任务
│ └── openclaw.json # 主配置
├── workspace/ # 工作区
│ ├── MEMORY.md # 长期记忆
│ ├── skills/ # 技能
│ ├── knowledge/ # 知识库
│ └── scripts/ # 脚本
└── vector_memory/ # 向量记忆
├── data/ # 数据
├── backups/ # 备份
└── *.py # 脚本
```
### 4.2 忽略的文件
以下文件不备份(太大或隐私):
- 日志文件:`logs/`
- 媒体文件:`media/`
- 浏览器缓存:`browser/`
- 临时文件:`tmp/`
- 敏感 Token配置文件中的密钥
---
## 五、当前状态
### 5.1 备份状态
| 项目 | 状态 |
|------|------|
| Gitea 仓库 | ✅ 已创建 |
| 首次备份 | ✅ 569 个文件 |
| 自动备份 | ✅ 每天 4:00 |
| 向量记忆备份 | ✅ 每天 3:00 |
### 5.2 相关链接
| 资源 | 链接 |
|------|------|
| Gitea 仓库 | https://gitea.94kan.cn/houhuan/openclaw-home-pc |
| 向量记忆文档 | 见「向量记忆系统」文件夹 |
---
## 六、常见问题
### Q1: 备份失败怎么办?
**答**:检查网络连接,确认 Gitea 可访问。手动运行备份命令查看错误信息。
### Q2: 如何查看备份历史?
**答**:在 Gitea 仓库中查看提交记录即可。
### Q3: 向量记忆如何恢复?
**答**:从 `vector_memory/backups/` 中找到备份文件,使用 `python3 memory_backup.py restore` 命令恢复。
### Q4: 需要多少存储空间?
**答**:当前约 100MB建议预留 500MB 空间。
---
## 七、相关文档
- 向量记忆系统 - 部署与备份实战
- OpenClaw 向量记忆系统 - 详细实施指南
---
*本文档由欢欢助理自动生成 | 2026-03-21*

View File

@ -0,0 +1,249 @@
# 🔄 OpenClaw 自动备份系统
## 📋 系统概述
自动备份 OpenClaw 核心配置和工作区数据,每天凌晨 3 点执行,保留最近 7 天的备份。
---
## 🎯 备份内容
### 核心配置
- `openclaw.json` - 主配置文件(含 API 密钥)
- `cron/jobs.json` - 定时任务配置
- `identity/device.json` - 设备身份密钥
- `wecomConfig/config.json` - 企业微信 MCP 配置
- `credentials/` - 凭证文件
- `devices/` - 设备配对信息
### 工作区(最重要)
- `MEMORY.md` - 长期记忆
- `SOUL.md` - 核心身份
- `IDENTITY.md` - 人设定义
- `USER.md` - 用户档案
- `HEARTBEAT.md` - 心跳任务
- `skills/` - 自定义技能5 个)
- `memory/` - 短期记忆文件
---
## ⏰ 执行时间
- **频率**: 每天一次
- **时间**: 凌晨 03:00北京时间
- **时区**: Asia/Shanghai
- **任务 ID**: `6a0ae369-7c2f-423f-b973-739e999f85c4`
---
## 📂 存储位置
- **备份目录**: `/home/ubuntu/backups/openclaw/`
- **备份格式**: `openclaw_YYYYMMDD_HHMMSS.tar.gz`
- **报告文件**: `/tmp/openclaw_backup_report_YYYYMMDD_HHMMSS.txt`
---
## 📤 通知方式
每次备份完成后,通过企业微信自动发送详细报告:
```
🦐 OpenClaw 备份完成报告
📅 备份时间2026-03-17 14:29:49
📦 备份文件openclaw_20260317_142949.tar.gz
💾 压缩包大小200K
📊 备份内容:
✅ 核心配置 (openclaw.json)
✅ 定时任务 (cron/)
✅ 设备身份 (identity/)
✅ 企业微信配置 (wecomConfig/)
✅ 凭证文件 (credentials/)
✅ 工作区 (workspace/)
- 记忆文件10 个
- 自定义技能5 个
📋 备份统计:
• 总备份数1 个
• 总占用204K
• 保留策略7 天
✅ 备份状态:成功
🧹 旧备份已清理
```
---
## 🛠️ 脚本文件
### 备份脚本
**路径**: `~/.openclaw/workspace/scripts/openclaw-backup.sh`
**功能**:
- 备份所有核心配置文件
- 备份工作区(记忆、技能等)
- 创建压缩备份tar.gz
- 清理 7 天前的旧备份
- 生成详细报告
**手动执行**:
```bash
bash ~/.openclaw/workspace/scripts/openclaw-backup.sh
```
### 通知脚本
**路径**: `~/.openclaw/workspace/scripts/openclaw-backup-notify.sh`
**功能**:
- 读取备份报告
- 通过 OpenClaw 发送企业微信通知
---
## 🧹 保留策略
- **保留时间**: 7 天
- **清理方式**: 自动删除 7 天前的备份
- **执行时间**: 每次备份完成后
**清理逻辑**:
```bash
find ~/backups/openclaw -name "openclaw_*.tar.gz" -mtime +7 -delete
```
---
## 📊 备份统计
| 项目 | 大小 | 说明 |
|------|------|------|
| openclaw.json | ~12K | 主配置 |
| cron/ | ~60K | 定时任务 |
| identity/ | ~12K | 设备密钥 |
| wecomConfig/ | ~8K | 企微配置 |
| credentials/ | ~16K | 凭证 |
| devices/ | ~12K | 配对信息 |
| workspace/ | ~1.2M | 工作区 |
| **压缩包** | **~200K** | 压缩后 |
---
## 🔒 安全建议
### 1. 加密备份
```bash
# 使用 GPG 加密
gpg --symmetric --cipher-algo AES256 openclaw_20260317_030000.tar.gz
```
### 2. 远程备份
```bash
# 同步到远程服务器
rsync -avz ~/backups/openclaw/ user@remote:/backups/openclaw/
```
### 3. 权限控制
```bash
# 设置备份目录权限
chmod 700 ~/backups/openclaw/
```
---
## 🔧 管理命令
### 查看备份列表
```bash
ls -lh ~/backups/openclaw/
```
### 查看最近备份
```bash
ls -lt ~/backups/openclaw/ | head -5
```
### 手动备份
```bash
bash ~/.openclaw/workspace/scripts/openclaw-backup.sh
```
### 查看备份报告
```bash
cat /tmp/openclaw_backup_report_*.txt
```
### 恢复备份
```bash
# 1. 停止 OpenClaw
openclaw gateway stop
# 2. 解压备份
cd ~/backups/openclaw/
tar -xzf openclaw_20260317_030000.tar.gz
# 3. 恢复配置
cp openclaw_20260317_030000/openclaw.json ~/.openclaw/
cp -r openclaw_20260317_030000/cron ~/.openclaw/
cp -r openclaw_20260317_030000/identity ~/.openclaw/
cp -r openclaw_20260317_030000/wecomConfig ~/.openclaw/
cp -r openclaw_20260317_030000/credentials ~/.openclaw/
cp -r openclaw_20260317_030000/devices ~/.openclaw/
cp -r openclaw_20260317_030000/workspace ~/.openclaw/
# 4. 重启 OpenClaw
openclaw gateway start
```
---
## ⚠️ 故障排查
### 备份失败
1. 检查磁盘空间:`df -h`
2. 检查脚本权限:`chmod +x ~/.openclaw/workspace/scripts/*.sh`
3. 查看错误日志:`cat /tmp/openclaw_backup_report_*.txt`
### 通知未发送
1. 检查 OpenClaw 是否运行:`openclaw gateway status`
2. 检查企业微信配置:`cat ~/.openclaw/openclaw.json | grep wecom`
3. 手动发送测试:使用 `openclaw sessions send`
### 备份文件过大
1. 排除不必要文件extensions/、node_modules/
2. 检查 workspace/是否有大文件
3. 考虑使用增量备份
---
## 📅 维护计划
### 每日(自动)
- 03:00 执行备份
- 发送备份报告
- 清理 7 天前备份
### 每周(建议)
- 检查备份文件大小是否正常
- 验证备份文件完整性
- 审查备份日志
### 每月(建议)
- 测试备份恢复流程
- 清理本地备份(保留最近 30 天)
- 同步到远程存储
---
## 📝 更新日志
| 日期 | 版本 | 更新内容 |
|------|------|----------|
| 2026-03-17 | v1.0 | 初始版本,部署自动备份系统 |
---
**部署日期**: 2026-03-17
**下次备份**: 2026-03-18 03:00
**任务状态**: ✅ 正常运行

View File

@ -0,0 +1,92 @@
#!/bin/bash
# OpenClaw 一键恢复脚本
# 用法: ./restore.sh
# 或指定备份目录: ./restore.sh /path/to/backup
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BACKUP_DIR="${1:-$SCRIPT_DIR}"
echo -e "${YELLOW}========================================${NC}"
echo -e "${YELLOW} OpenClaw 一键恢复脚本${NC}"
echo -e "${YELLOW}========================================${NC}"
echo ""
# 检查是否为 backup 目录
if [[ ! -d "$BACKUP_DIR/openclaw" ]]; then
echo -e "${RED}错误: 不是有效的备份目录${NC}"
echo "请确保目录包含 openclaw/ workspace/ 等文件夹"
exit 1
fi
echo -e "${GREEN}[1/4] 检查备份文件...${NC}"
if [[ -d "$BACKUP_DIR/openclaw" ]]; then
echo " ✅ OpenClaw 配置: 存在"
else
echo " ❌ OpenClaw 配置: 不存在"
fi
if [[ -d "$BACKUP_DIR/workspace" ]]; then
echo " ✅ 工作区文件: 存在"
else
echo " ❌ 工作区文件: 不存在"
fi
if [[ -d "$BACKUP_DIR/vector_memory" ]]; then
echo " ✅ 向量记忆: 存在"
else
echo " ⚠️ 向量记忆: 不存在 (可选)"
fi
echo ""
echo -e "${GREEN}[2/4] 恢复 OpenClaw 配置...${NC}"
if [[ -d "$HOME/.openclaw" ]]; then
echo " ⚠️ 检测到现有 OpenClaw 配置,是否覆盖? (y/n)"
read -r confirm
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
echo "已取消恢复"
exit 0
fi
fi
# 创建必要目录
mkdir -p "$HOME/.openclaw"
# 复制文件
cp -r "$BACKUP_DIR/openclaw/"* "$HOME/.openclaw/" 2>/dev/null || true
echo " ✅ OpenClaw 配置已恢复"
echo ""
echo -e "${GREEN}[3/4] 恢复工作区...${NC}"
mkdir -p "$HOME/.openclaw/workspace"
cp -r "$BACKUP_DIR/workspace/"* "$HOME/.openclaw/workspace/" 2>/dev/null || true
echo " ✅ 工作区已恢复"
echo ""
echo -e "${GREEN}[4/4] 恢复向量记忆 (可选)...${NC}"
if [[ -d "$BACKUP_DIR/vector_memory" ]]; then
mkdir -p "$HOME/openclaw-memory-vector"
cp -r "$BACKUP_DIR/vector_memory/"* "$HOME/openclaw-memory-vector/" 2>/dev/null || true
echo " ✅ 向量记忆已恢复"
else
echo " ⏭️ 跳过向量记忆恢复"
fi
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} 恢复完成! ✅${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo "下一步操作:"
echo " 1. 重启 OpenClaw 服务: openclaw gateway restart"
echo " 2. 检查配置: openclaw status"
echo ""

View File

@ -45,30 +45,6 @@ WATCHLIST = [
"volume_surge": 2.0 # 成交量异动 "volume_surge": 2.0 # 成交量异动
} }
}, },
{
"code": "688313",
"name": "仕佳光子",
"market": "sh",
"type": "individual",
"cost": 15.00, # 参考成本价(待确认)
"alerts": {
"change_pct_above": 5.0, # 日内涨超 5% 预警
"change_pct_below": -5.0, # 日内跌超 5% 预警
"volume_surge": 2.0 # 成交量异动
}
},
{
"code": "600096",
"name": "云天化",
"market": "sh",
"type": "individual",
"cost": 42.00, # 老大确认的实际成本价
"alerts": {
"change_pct_above": 5.0, # 日内涨超 5% 预警
"change_pct_below": -5.0, # 日内跌超 5% 预警
"volume_surge": 2.0 # 成交量异动
}
},
{ {
"code": "002195", "code": "002195",
"name": "岩山科技", "name": "岩山科技",