OpenClaw 环境完整迁移实操步骤

  发布时间:2026-03-07 15:21:43   作者:海兰   我要评论
文章浏览阅读412次,点赞9次,收藏8次。OpenClaw 的运行环境由全局核心配置模型定义插件/技能生态用户工作空间和环境变量认证五部分组成。迁移的本质是将这五部分核心文件完整复制到目标环境,确保配置、功能和数据完全一致。_如何迁移openclaw保留原本用户数据

一、迁移概述

OpenClaw 的运行环境由全局核心配置模型定义插件/技能生态用户工作空间环境变量认证五部分组成。迁移的本质是将这五部分核心文件完整复制到目标环境,确保配置、功能和数据完全一致。

二、关键文件/目录详解(先搞懂“为什么要拷”)

在开始操作前,需先确认源环境的实际路径(npm 全局安装路径因人而异,见下文“路径查找方法”)。

组件类型作用说明默认/常见路径示例
全局配置文件存储 OpenClaw 的核心设置(模型默认参数、认证方式、日志级别等)~/.npm-global/lib/node_modules/openclaw/config.json
模型配置文件自定义模型的定义(如模型名称、API 端点、参数映射等)~/.npm-global/lib/node_modules/openclaw/models.json
插件目录所有已安装插件的代码和配置(插件是 OpenClaw 功能扩展的核心)~/.npm-global/lib/node_modules/openclaw/plugins/
技能目录所有已安装技能的定义(技能是插件的上层封装,用于特定任务流)~/.npm-global/lib/node_modules/openclaw/skills/
用户工作空间存储项目文件、对话记忆(MEMORY.md)、用户偏好(USER.md)、会话历史等~/.openclaw/workspace/(可通过配置修改)
环境变量配置存储敏感信息(如 API 密钥)、自定义路径等(OpenClaw 会读取 OPENCLAW_* 开头的变量)~/.bashrc / ~/.zshrc / ~/.profile

🔍 路径查找方法(避免拷贝错误!)

在源环境执行以下命令,获取真实路径

# 1. 查找 OpenClaw 全局安装目录(核心!)
OPENCLAW_GLOBAL="$(npm root -g)/openclaw"
echo "OpenClaw 全局目录: $OPENCLAW_GLOBAL"
# 2. 查找用户工作空间目录
OPENCLAW_WORKSPACE="$(openclaw config get workspace 2>/dev/null || echo "$HOME/.openclaw/workspace")"
echo "OpenClaw 工作空间: $OPENCLAW_WORKSPACE"
# 3. 确认当前使用的 Shell
echo "当前 Shell: $SHELL"

如下图所示

三、实操步骤(分“备份源环境”和“恢复目标环境”)

📦 第一阶段:源环境备份(按顺序执行)

1. 备份前准备

确保 OpenClaw 未运行(避免文件被占用):

# 谨慎执行!强制结束 OpenClaw 进程(若有)
pkill -f openclaw || echo "无 OpenClaw 进程运行"

或者使用以下命令查看进程:

ps -ef | grep openclaw

红框中为openclaw进程,如下图所示:

定义备份路径(建议带日期,方便管理):

# 自定义备份目录(可修改为你想存放的位置)
BACKUP_DIR="$HOME/openclaw_backup_$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"
echo "备份目录: $BACKUP_DIR"

2. 执行备份(复制所有核心文件)

# --- 1. 备份全局配置、模型、插件、技能 ---
if [ -d "$OPENCLAW_GLOBAL" ]; then
  cp -a "$OPENCLAW_GLOBAL/config.json" "$BACKUP_DIR/" 2>/dev/null || echo "config.json 不存在,跳过"
  cp -a "$OPENCLAW_GLOBAL/models.json" "$BACKUP_DIR/" 2>/dev/null || echo "models.json 不存在,跳过"
  cp -a "$OPENCLAW_GLOBAL/plugins/" "$BACKUP_DIR/" 2>/dev/null || echo "plugins 目录不存在,跳过"
  cp -a "$OPENCLAW_GLOBAL/skills/" "$BACKUP_DIR/" 2>/dev/null || echo "skills 目录不存在,跳过"
else
  echo "错误: 未找到 OpenClaw 全局目录 $OPENCLAW_GLOBAL"
  exit 1
fi
# --- 2. 备份用户工作空间 ---
if [ -d "$OPENCLAW_WORKSPACE" ]; then
  cp -a "$OPENCLAW_WORKSPACE" "$BACKUP_DIR/workspace"
else
  echo "警告: 未找到工作空间 $OPENCLAW_WORKSPACE,跳过"
fi
# --- 3. 备份 Shell 配置文件(环境变量) ---
# 根据上面查到的 Shell 选择对应文件(以下以 bash 为例,zsh 请改为 ~/.zshrc)
SHELL_CONFIG="$HOME/.bashrc"
cp -a "$SHELL_CONFIG" "$BACKUP_DIR/$(basename $SHELL_CONFIG)"
echo "✅ 备份完成!请检查 $BACKUP_DIR 内容:"
ls -lah "$BACKUP_DIR"

🚀 第二阶段:目标环境恢复

1. 目标环境准备

  • 安装 Node.js & npm:确保版本与源环境一致(可通过 node -vnpm -v 查看源环境版本)。
  • 安装 OpenClaw:建议安装与源环境相同版本(避免配置不兼容):
# 先查看源环境 OpenClaw 版本(在源环境执行)
openclaw --version
# 目标环境安装对应版本(假设源环境是3.2)
npm install -g openclaw@3.2

如果能确认都是最新版本,或者源环境是最新版本,则直接执行如下命令安装:

curl -fsSL https://openclaw.ai/install.sh | bash
  • 确认目标环境路径(和源环境一样,先执行“路径查找方法”获取 OPENCLAW_GLOBALOPENCLAW_WORKSPACE)。

2. 上传备份文件到目标环境

将源环境的 $BACKUP_DIR 文件夹(如 openclaw_backup_20260305)上传到目标环境的任意位置(如 ~/openclaw_backup_20260305)。

3. 执行恢复(按顺序!)

# --- 0. 定义变量(请根据实际情况修改!) ---
# 目标环境的 OpenClaw 全局目录(通过 npm root -g 获取)
OPENCLAW_GLOBAL="$HOME/.npm-global/lib/node_modules/openclaw"
# 目标环境的工作空间目录(通过 openclaw config get workspace 获取)
OPENCLAW_WORKSPACE="$HOME/.openclaw/workspace"
# 上传后的备份目录路径
BACKUP_DIR="$HOME/openclaw_backup_20260305"
# 目标环境的 Shell 配置文件
SHELL_CONFIG="$HOME/.bashrc"
# --- 1. 停止 OpenClaw 进程 ---
pkill -f openclaw || echo "无 OpenClaw 进程运行"
# --- 2. 恢复全局配置、模型、插件、技能 ---
if [ -d "$BACKUP_DIR" ]; then
  # 恢复 config.json
  [ -f "$BACKUP_DIR/config.json" ] && cp -a "$BACKUP_DIR/config.json" "$OPENCLAW_GLOBAL/"
  # 恢复 models.json
  [ -f "$BACKUP_DIR/models.json" ] && cp -a "$BACKUP_DIR/models.json" "$OPENCLAW_GLOBAL/"
  # 恢复 plugins 目录
  [ -d "$BACKUP_DIR/plugins" ] && cp -a "$BACKUP_DIR/plugins/" "$OPENCLAW_GLOBAL/"
  # 恢复 skills 目录
  [ -d "$BACKUP_DIR/skills" ] && cp -a "$BACKUP_DIR/skills/" "$OPENCLAW_GLOBAL/"
else
  echo "错误: 未找到备份目录 $BACKUP_DIR"
  exit 1
fi
# --- 3. 恢复工作空间 ---
if [ -d "$BACKUP_DIR/workspace" ]; then
  mkdir -p "$(dirname $OPENCLAW_WORKSPACE)"  # 确保父目录存在
  cp -a "$BACKUP_DIR/workspace" "$OPENCLAW_WORKSPACE"
fi
# --- 4. 恢复环境变量(谨慎!建议先备份目标环境原配置) ---
# 先备份目标环境当前的 Shell 配置
cp -a "$SHELL_CONFIG" "$SHELL_CONFIG.bak.$(date +%Y%m%d)"
# 方法 A:直接覆盖(仅当目标环境是全新环境时推荐)
# cp -a "$BACKUP_DIR/$(basename $SHELL_CONFIG)" "$SHELL_CONFIG"
# 方法 B:手动合并(推荐!)
# 打开备份的 Shell 配置文件,将其中 OPENCLAW_* 开头的行复制到目标环境的 $SHELL_CONFIG 末尾
echo "⚠️  请手动合并环境变量:"
echo "   1. 打开备份文件: cat $BACKUP_DIR/$(basename $SHELL_CONFIG)"
echo "   2. 将其中 OPENCLAW_* 开头的行复制到 $SHELL_CONFIG 末尾"
echo "   3. 执行: source $SHELL_CONFIG"
# --- 5. 修复权限(如果全局目录需要 sudo) ---
# 若 OpenClaw 安装在系统目录(如 /usr/local/lib/node_modules),需加 sudo 执行上述 cp 命令
# 例如: sudo cp -a "$BACKUP_DIR/config.json" "$OPENCLAW_GLOBAL/"
echo "✅ 恢复操作完成!请继续执行“验证步骤”。"

四、验证迁移是否成功(必须做!)

在目标环境依次执行以下命令,确认所有组件正常:

# 1. 检查 OpenClaw 版本
openclaw --version
# 2. 检查全局配置
openclaw config list
# 3. 检查模型列表
openclaw models list
# 4. 检查插件列表
openclaw plugins list
# 5. 检查技能列表
openclaw skills list
# 6. 检查工作空间文件
ls -lah "$(openclaw config get workspace)"
# 7. 运行简单测试(替换为你常用的命令)
openclaw run "测试迁移是否成功"

五、常见问题与注意事项

1. 版本兼容性

  • 源环境和目标环境的 OpenClaw 大版本必须一致(如 3.x → 3.x,不要跨 2.x 大版本直接迁移),否则可能出现配置解析错误。
  • 若必须跨版本,建议先在目标环境安装新版本,再手动迁移 config.json 和工作空间,插件重新安装。

2. 插件依赖缺失

部分插件可能依赖系统库或第三方工具(如 ffmpegpython3tensorflow 等)。迁移后若插件报错,需在目标环境手动安装依赖:

# 以 Ubuntu 为例,安装常见依赖
sudo apt update && sudo apt install -y ffmpeg python3 python3-pip
# 若插件要求特定 Python 包
pip3 install xxx

3. 权限问题

若 OpenClaw 是通过 sudo npm install -g 安装的,全局目录可能在 /usr/local/lib/node_modules/openclaw,此时备份和恢复需要加 sudo,且要注意文件所有者:

# 恢复后修复所有者(假设你的用户名是 user)
sudo chown -R user:user "$OPENCLAW_GLOBAL"
sudo chown -R user:user "$OPENCLAW_WORKSPACE"

4. 环境变量冲突

  • 若目标环境已有 OPENCLAW_API_KEY 等变量,手动合并 Shell 配置时需注意覆盖顺序(后写的生效)。
  • 建议使用 openclaw config set 命令重新设置敏感信息,替代直接复制环境变量。

5. 工作空间软链接

  • 若工作空间中包含软链接(ln -s 创建的文件),cp -a 会保留软链接。若软链接指向的文件不在工作空间内,需单独迁移这些文件,或修改软链接为相对路径。

六、快速参考(核心命令速查)

操作命令示例
查找 npm 全局目录npm root -g
查看 OpenClaw 版本openclaw --version
查看 OpenClaw 配置openclaw config list
停止 OpenClaw 进程pkill -f openclaw
复制目录(保留权限/软链)cp -a 源目录 目标目录

七、一键打包脚本

1、用户目录替换成自己的。

#!/bin/bash
# OpenClaw 环境备份打包脚本
# 功能:将当前 OpenClaw 配置、模型、插件、技能和工作空间打包成一个 tarball
set -e
# 定义变量
USER_HOME="/home/tht"
OPENCLAW_NPM="$USER_HOME/.npm-global/lib/node_modules/openclaw"
WORKSPACE="$USER_HOME/.openclaw/workspace"
BACKUP_DIR="$WORKSPACE/backup_staging"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
ARCHIVE_NAME="openclaw_backup_$TIMESTAMP.tar.gz"
# 创建备份目录
echo "正在创建备份目录..."
rm -rf "$BACKUP_DIR"
mkdir -p "$BACKUP_DIR"
# 定义要备份的文件和目录
echo "正在检查并复制文件..."
# 配置文件
if [ -f "$OPENCLAW_NPM/config.json" ]; then
    cp "$OPENCLAW_NPM/config.json" "$BACKUP_DIR/"
    echo "✓ 已复制:config.json"
else
    echo "⚠ config.json 不存在 (跳过)"
fi
if [ -f "$OPENCLAW_NPM/models.json" ]; then
    cp "$OPENCLAW_NPM/models.json" "$BACKUP_DIR/"
    echo "✓ 已复制:models.json"
else
    echo "⚠ models.json 不存在 (跳过)"
fi
# 插件目录
if [ -d "$OPENCLAW_NPM/plugins" ]; then
    cp -r "$OPENCLAW_NPM/plugins" "$BACKUP_DIR/"
    echo "✓ 已复制:plugins"
else
    echo "⚠ plugins 目录不存在 (跳过)"
fi
# 技能目录
if [ -d "$OPENCLAW_NPM/skills" ]; then
    cp -r "$OPENCLAW_NPM/skills" "$BACKUP_DIR/"
    echo "✓ 已复制:skills"
else
    echo "⚠ skills 目录不存在 (跳过)"
fi
# 工作空间 (排除 backup_staging 目录本身)
echo "正在处理工作空间..."
WORKSPACE_BACKUP_DIR="$BACKUP_DIR/workspace_content"
mkdir -p "$WORKSPACE_BACKUP_DIR"
# 复制工作空间中除备份目录外的所有内容
for item in "$WORKSPACE"/*; do
    if [ -e "$item" ] && [ "$(basename "$item")" != "backup_staging" ] && [ "$(basename "$item")" != "archives" ]; then
        cp -r "$item" "$WORKSPACE_BACKUP_DIR/"
        echo "✓ 已复制工作空间项:$(basename "$item")"
    fi
done
# 创建工作空间中的归档目录
echo ""
echo "正在创建压缩包..."
ARCHIVE_WORKSPACE_DIR="$WORKSPACE/archives"
mkdir -p "$ARCHIVE_WORKSPACE_DIR"
# 创建压缩包
cd "$BACKUP_DIR"
tar -czf "$ARCHIVE_WORKSPACE_DIR/$ARCHIVE_NAME" ./*
echo "✓ 压缩包已创建:$ARCHIVE_WORKSPACE_DIR/$ARCHIVE_NAME"
# 显示文件信息
echo ""
echo "=========================================="
echo "备份完成!"
echo "=========================================="
echo "压缩包位置:$ARCHIVE_WORKSPACE_DIR/$ARCHIVE_NAME"
echo "文件大小:$(du -h "$ARCHIVE_WORKSPACE_DIR/$ARCHIVE_NAME" | cut -f1)"
echo ""
echo "解压命令:"
echo "  tar -xzf $ARCHIVE_WORKSPACE_DIR/$ARCHIVE_NAME -C /path/to/target"
echo ""
echo "=========================================="

2. 给脚本添加执行权限

chmod +x /home/tht/.openclaw/workspace/backup_openclaw.sh

3. 执行备份脚本

sh /home/tht/.openclaw/workspace/backup_openclaw.sh

4. (可选)清理临时目录

rm -rf /home/tht/.openclaw/workspace/backup_staging

生成的压缩包位置,比如今天这个包:
路径: /home/tht/.openclaw/workspace/archives/openclaw_backup_20260305_160638.tar.gz
如下图所示:

5.在目标环境解压命令

tar -xzf /path/to/openclaw_backup_xxxx.tar.gz -C /path/to/target

如果您想要手动直接打包而不使用脚本,可以使用以下命令(记得换成你自己的目录):

# 直接打包到工作空间
tar -czf /home/tht/.openclaw/workspace/archives/openclaw_manual_backup.tar.gz \
  ~/.npm-global/lib/node_modules/openclaw/config.json \
  ~/.npm-global/lib/node_modules/openclaw/skills \
  /home/tht/.openclaw/workspace/AGENTS.md \
  /home/tht/.openclaw/workspace/SOUL.md \
  /home/tht/.openclaw/workspace/USER.md \
  /home/tht/.openclaw/workspace/MEMORY.md \
  /home/tht/.openclaw/workspace/memory/

到此这篇关于OpenClaw 环境完整迁移实操步骤的文章就介绍到这了,更多相关OpenClaw 环境迁移内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

  • OpenClaw操控宿主机Win11本地环境完整实操

    本文介绍了如何将Win11宿主机配置为OpenClaw的远程执行节点,通过SSH/WinRM协议建立虚拟机Ubuntu→Win11的可信通信通道,实现自动化闭环,内容涵盖了前置条件、网络配置、Open
    2026-03-07
  • Linux环境下配置openclaw并连接到局域网ollama模型

    本文介绍了如何在Linux环境下配置OpenClaw并连接到局域网内的ollama模型,包括环境准备、部署步骤、配置provider和model、飞书插件安装与配置,以及消息测试和定时任务设置,
    2026-03-04
  • Ubuntu系统OpenClaw版本降级的实例操作

    本文主要介绍了如何将OpenClaw从2026.3.2版本降级到2026.2.3版本,降级的核心动因是新版本存在Bug、兼容性差或功能/性能不符合需求,文章详细描述了命令行版本和桌面端版本的
    2026-03-07
  • OpenClaw使用Ollama本地模型的实现(支持工具调用))

    Ollama 是一个本地 LLM 运行时,可以轻松在你的机器上运行开源模型,OpenClaw 通过 Ollama 的 OpenAI 兼容 API 进行集成,下面就来详细的介绍一下,感兴趣的可以了解一下
    2026-03-06
  • OpenClaw 本地安装与配置十分钟完成(附常用命令速查)

    OpenClaw 是一个开源的个人 AI 助手,支持系统操作、文件读写、代码执行等,它可以通过配置文件进行各种设置,这篇文章给大家介绍OpenClaw 快速入门:10 分钟完成本地安装与配
    2026-03-06
  • OpenClaw 是什么 OpenClaw 使用教程

    这篇文章给大家介绍OpenClaw 使用教程跨平台安装部署、配置大模型 Provider、接入 Ollama、本地 Skills/插件、浏览器控制、搜索 API、Obsidian Skills的相关操作,感兴趣的
    2026-03-05
  • 零基础入门OpenClaw 完整安装配置实战指南(完全流程)

    OpenClaw就是一个可以让 AI 住进你的 Telegram、管理你的电脑或服务器、帮你写代码的开源框架,下面给大家分享整个安装过程,感兴趣的朋友跟随小编一起看看吧
    2026-03-03

最新评论