openclaw-home-pc/restore.sh

93 lines
2.5 KiB
Bash
Executable File

#!/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 ""