通过OpenClaw实现副业收入 :《OpenClaw赚钱实录:从"养龙虾"到可持续变现的实践指南》
将 OpenClaw 迁移到新机器
本指南将帮助你将 OpenClaw 网关从一台机器迁移到另一台机器,无需重新执行初始配置(onboarding)。
从概念上讲,迁移过程非常简单:只需复制状态目录和工作区即可。但实际操作中,常因配置文件、权限问题或部分复制而导致错误。本文将详细说明迁移步骤、常见陷阱及解决方案,确保你的迁移顺利完成。
开始之前(确认你要迁移的内容)
在开始迁移前,请先在旧机器上确认以下信息,以便准确复制所需文件。
1) 确认状态目录
大多数安装使用默认路径:
- 状态目录:
~/.openclaw/
但如果你使用了以下任一方式,路径可能不同:
--profile <name>(通常会变成~/.openclaw-<name>/)- 设置了环境变量
OPENCLAW_STATE_DIR=/some/path
如果不确定,请在旧机器上运行以下命令:
bash
openclaw status
查看输出中是否提及 OPENCLAW_STATE_DIR 或 profile。如果你运行了多个网关实例,请对每个 profile 分别执行此操作。
2) 确认工作区
工作区存放着你的智能体文件(记忆、提示词等),常见默认路径包括:
~/.openclaw/workspace/(推荐的工作区位置)- 你自己创建的自定义文件夹
你的工作区是存放 MEMORY.md、USER.md 以及 memory/*.md 等文件的地方。
3) 明确你将保留的内容
如果你同时复制了 状态目录 和 工作区,你将保留以下内容:
- 网关配置(
openclaw.json) - 认证配置文件 / API 密钥 / OAuth 令牌
- 会话历史 + 智能体状态
- 频道状态(例如 WhatsApp 的登录/会话信息)
- 你的工作区文件(记忆、技能笔记等)
如果你仅复制了工作区 (例如通过 Git),则不会保留以下内容:
- 会话记录
- 凭据(credentials)
- 频道登录状态
这些内容都存储在 $OPENCLAW_STATE_DIR 目录下。
推荐的迁移步骤
第 0 步 --- 在旧机器上创建备份
在旧机器上,首先停止网关,以防止复制过程中文件发生变化:
bash
openclaw gateway stop
(可选但强烈推荐)将状态目录和工作区打包归档:
bash
# 如果你使用了 profile 或自定义路径,请相应调整
cd ~
tar -czf openclaw-state.tgz .openclaw
tar -czf openclaw-workspace.tgz .openclaw/workspace
如果你有多个 profile 或状态目录(例如 ~/.openclaw-main、~/.openclaw-work),请分别对每个目录进行归档。
第 1 步 --- 在新机器上安装 OpenClaw
在新机器上安装 CLI(如有需要,也安装 Node.js):
- 参见:安装指南
此时即使初始配置(onboarding)创建了一个全新的 ~/.openclaw/ 目录也没关系------你将在下一步覆盖它。
第 2 步 --- 将状态目录和工作区复制到新机器
请同时复制以下两个部分:
$OPENCLAW_STATE_DIR(默认为~/.openclaw/)- 你的工作区(默认为
~/.openclaw/workspace/)
常用方法包括:
- 使用
scp传输压缩包并解压 - 通过 SSH 使用
rsync -a同步 - 使用外接硬盘拷贝
复制完成后,请确保:
- 隐藏目录(如
.openclaw/)已被包含 - 文件所有权正确,属于将要运行网关的用户(可通过
chown调整)
第 3 步 --- 运行 Doctor(执行迁移与服务修复)
在新机器上运行:
bash
openclaw doctor
doctor 是一个"安全且可靠"的命令。它会修复服务、应用配置迁移,并警告潜在的不一致问题。
然后执行:
bash
openclaw gateway restart
openclaw status
常见陷阱(及规避方法)
陷阱:profile / 状态目录不匹配
如果你在旧机器上使用了某个 profile(或设置了 OPENCLAW_STATE_DIR),但在新机器上使用了不同的 profile 或默认路径,可能会出现以下症状:
- 配置更改未生效
- 频道丢失或登出
- 会话历史为空
解决方法 :使用你迁移时所用的相同 profile 或状态目录来启动网关和服务,然后再次运行:
bash
openclaw doctor
陷阱:只复制了 openclaw.json
仅复制 openclaw.json 是不够的。许多服务提供商会将状态存储在以下位置:
$OPENCLAW_STATE_DIR/credentials/$OPENCLAW_STATE_DIR/agents/<agent-name>/...
务必迁移整个 $OPENCLAW_STATE_DIR 文件夹。
陷阱:权限 / 所有权问题
如果你以 root 用户复制文件,或切换了运行用户,网关可能无法读取凭据或会话文件。
解决方法:确保状态目录和工作区的所有者是运行网关的用户。可以使用以下命令修正:
bash
chown -R <user>:<group> ~/.openclaw
陷阱:在远程模式与本地模式之间迁移
- 如果你的 UI(WebUI/TUI)连接的是一个远程网关,则会话存储和工作区由远程主机持有。
- 仅迁移你的笔记本电脑并不会移动远程网关的状态。
如果你处于远程模式,请迁移的是 网关所在的主机。
陷阱:备份中包含敏感信息
$OPENCLAW_STATE_DIR 中包含敏感信息(如 API 密钥、OAuth 令牌、WhatsApp 凭据)。请像对待生产环境密钥一样对待这些备份:
- 加密存储
- 避免通过不安全渠道共享
- 若怀疑泄露,请立即轮换密钥
验证清单
在新机器上,请确认以下事项:
openclaw status显示网关正在运行- 你的频道仍保持连接(例如 WhatsApp 无需重新配对)
- 控制面板可以打开,并显示已有会话
- 你的工作区文件(记忆、配置等)均已存在