93 lines
2.5 KiB
Bash
Executable File
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 ""
|