From 3746d9410a880d021b049448ae788a386b03e40a Mon Sep 17 00:00:00 2001 From: huan Date: Sat, 21 Mar 2026 16:04:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20restore.sh=20=E6=81=A2?= =?UTF-8?q?=E5=A4=8D=E8=84=9A=E6=9C=AC=20-=202026-03-21?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- restore.sh | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100755 restore.sh diff --git a/restore.sh b/restore.sh new file mode 100755 index 0000000..b54332e --- /dev/null +++ b/restore.sh @@ -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 ""