OpenClaw 极简迁移操作手册(42M 复刻全量部署)
适用场景:把 OpenClaw 从一台服务器迁到另一台,只带 42M 核心数据,其余 1.6G 全部在新服务器重建。
⬇️ 备份包下载
| 项 | 值 |
|---|---|
| 下载地址 | https://cdn.imoons.cn/openclaw-migrate-20260605.tar.gz |
| 大小 | 42M(41.3MB) |
| SHA256 | 2c4ad6cd709fd12f8676803c8fd5d9e15578c3ba1f4d99e156981abffc7274a7 |
| 有效期 | 永久(10 年 token) |
| 包含 | openclaw.json + memory(9个sqlite) + workspace(49 skills+21 projects+46 scripts) + 9 个子工作区 |
下载命令:
wget https://cdn.imoons.cn/openclaw-migrate-20260605.tar.gz
# 或
curl -O https://cdn.imoons.cn/openclaw-migrate-20260605.tar.gz
🚀 完整迁移操作步骤(端到端)
假设:老服务器 A → 新服务器 B,A 和 B 之间网络不一定通。
Step 1:老服务器执行备份
# 1.1 运行备份脚本
bash /root/.openclaw/workspace/scripts/migrate-openclaw.sh
# 1.2 确认输出(关键 13 个文件)
ls -lh /tmp/openclaw-migrate-20260605-XXXXXX/
# 应看到:
# openclaw.json 12K
# memory.tar.gz 696K
# workspace.tar.gz 29M
# workspace-canmou.tar.gz 40K
# ...(共 9 个子工作区)
# 总大小:约 42M
Step 2:老服务器打包 + 传七牛
# 2.1 打包成单一文件(方便上传/下载)
tar czf /tmp/openclaw-migrate.tar.gz -C /tmp openclaw-migrate-20260605-XXXXXX/
# 2.2 上传七牛(永久有效期,不要用 7 天临时 token)
python3 << 'EOF'
from qiniu import Auth, put_file_v2
q = Auth('AK', 'SK')
token = q.upload_token('taojinai', 'openclaw-migrate-20260605.tar.gz', 3600*24*365*10)
put_file_v2(token, 'openclaw-migrate-20260605.tar.gz', '/tmp/openclaw-migrate.tar.gz')
EOF
# 2.3 验证 CDN 可访问
curl -I https://cdn.imoons.cn/openclaw-migrate-20260605.tar.gz
# 应返回 HTTP 200 + Content-Length: 43272021
Step 3:新服务器下载 + 初始化
# 3.1 下载备份包(约 42M,1-2 分钟)
wget -O /tmp/openclaw-migrate.tar.gz https://cdn.imoons.cn/openclaw-migrate-20260605.tar.gz
# 3.2 验证 SHA256(必须一致!)
echo "2c4ad6cd709fd12f8676803c8fd5d9e15578c3ba1f4d99e156981abffc7274a7 /tmp/openclaw-migrate.tar.gz" | sha256sum -c
# 应输出:/tmp/openclaw-migrate.tar.gz: OK
# 3.3 准备 init 脚本(任选一种方式)
# 方式 A:从老服务器 scp 过来
scp root@老IP:/root/.openclaw/workspace/scripts/init-new-server.sh /tmp/
# 方式 B:从工作区拿(如果 init 脚本已经存在)
cp /root/.openclaw/workspace/scripts/init-new-server.sh /tmp/
# 方式 C:手动创建(脚本很短,参考第 3 节)
chmod +x /tmp/init-new-server.sh
# 3.4 一键初始化
bash /tmp/init-new-server.sh
Step 4:脚本执行过程(约 5 分钟)
init-new-server.sh 会自动跑完 7 步:
[1/7] 从 CDN 下载迁移包
[2/7] SHA256 校验
[3/7] 安装 Node.js 22 + Python3
[4/7] npm install -g openclaw
[5/7] 解压迁移包
[6/7] 还原配置 + 9 个 sqlite 记忆 + workspace + 9 个子工作区
[7/7] 启动 openclaw gateway + 自动验证
Step 5:5 分钟验收
脚本完成后会自动输出验证报告,你需要人工确认:
- [ ]
openclaw status— 主服务健康 - [ ]
openclaw agents list— 9 个 agent 都在 - [ ]
openclaw cron list— 定时任务都在 - [ ] 发条飞书消息 — 通道正常
- [ ] 调个 skill(如天气、查基金)— skill 加载正常
故障兜底
如果 Step 3.4 脚本挂了,按以下顺序排查:
# A. 检查 Node 是否装好
node --version # 应 v22+
# B. 检查 OpenClaw 是否装好
openclaw --version
# C. 手动解压
mkdir -p /tmp/openclaw-restore
tar xzf /tmp/openclaw-migrate.tar.gz -C /tmp/openclaw-restore/
RESTORE_DIR=$(ls /tmp/openclaw-restore | head -1)
cd /tmp/openclaw-restore/$RESTORE_DIR
# D. 手动还原
mkdir -p /root/.openclaw
cp openclaw.json /root/.openclaw/
chmod 600 /root/.openclaw/openclaw.json
tar xzf memory.tar.gz -C /root/.openclaw/
tar xzf workspace.tar.gz -C /root/.openclaw/
for f in workspace-*.tar.gz; do
tar xzf "$f" -C /root/.openclaw/
done
# E. 启动
openclaw gateway start
openclaw status
0. 前置认知:哪些能丢,哪些不能丢
迁移前先看 du -ah /root/.openclaw/ | sort -rh | head -20,8 成数据可重建。
| 类别 | 大小 | 处理 |
|---|---|---|
| OpenClaw 主程序 + node_modules | – | 新服务器 npm install -g openclaw |
| Python venv (canmou/fundquant) | 313M | python -m venv venv && pip install |
| sessions 会话日志 | 1018M | 直接扔,记忆在 sqlite |
| 媒体文件(media/) | 63M | 默认不备,按需 ENABLE_MEDIA=1 |
| 缓存 / 临时文件 | – | 不备 |
| 配置 / 工作区 / 记忆 | 42M | ✅ 这才是真要带的 |
1. 备份(老服务器执行)
脚本:workspace/scripts/migrate-openclaw.sh
bash /root/.openclaw/workspace/scripts/migrate-openclaw.sh
输出 4 步:
[1/4] 备份 openclaw.json(12K)— 飞书/GitHub/七牛 key + agents 路由
[2/4] 备份 workspace/(29M)— 49 skills + 21 projects + 46 scripts + 8 个核心 md
[3/4] 备份 9 个子工作区(~12M)
[4/4] 备份 memory/ 目录(696K)— 9 个 sqlite 数据库
总大小:42M
排除规则(必写对,否则 GB 级垃圾会带进来)
tar czf workspace.tar.gz \
--exclude='node_modules' \
--exclude='.git' \
--exclude='__pycache__' \
--exclude='venv' \
--exclude='media' \
--exclude='.next' \
workspace/
2. 打包 + 传七牛(CDN 中转)
2.1 打包成单一文件
tar czf /tmp/openclaw-migrate.tar.gz -C /tmp openclaw-migrate-20260605-XXXXXX/
2.2 上传七牛(永久有效期)
from qiniu import Auth, put_file_v2
q = Auth('AK', 'SK')
# 注意:传 10 年有效期,不要用 7 天临时 token
token = q.upload_token('taojinai', 'openclaw-migrate-20260605.tar.gz', 3600*24*365*10)
put_file_v2(token, 'openclaw-migrate-20260605.tar.gz', '/tmp/openclaw-migrate.tar.gz')
坑:第一次我写的是 3600*24*7(7 天),传完才发现这是生产包不是调试包。用 CDN 传的包默认按永久。
2.3 CDN 链接
https://cdn.imoons.cn/openclaw-migrate-20260605.tar.gz
3. 新服务器初始化(核心交付物)
脚本:init-new-server.sh
bash /tmp/init-new-server.sh
脚本会做的事
[1/7] 从 CDN 下载迁移包
[2/7] SHA256 校验
[3/7] 安装 Node.js 22 + Python3
[4/7] npm install -g openclaw
[5/7] 解压迁移包
[6/7] 还原配置 + 9 个 sqlite 记忆 + workspace + 9 个子工作区
[7/7] 启动 openclaw gateway + 自动验证
完成后会自动输出
📊 系统状态 / 🤖 Agents 列表 / ⏰ Cron 任务
📝 后续检查清单
4. 手动还原(如果脚本挂了)
# 1. 装环境
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs python3-venv
npm install -g openclaw
# 2. 还原(解包到 /tmp,假设有 13 个 .tar.gz + 1 个 openclaw.json)
mkdir -p /root/.openclaw
cp /tmp/openclaw-restore/openclaw.json /root/.openclaw/
chmod 600 /root/.openclaw/openclaw.json
tar xzf /tmp/openclaw-restore/memory.tar.gz -C /root/.openclaw/
tar xzf /tmp/openclaw-restore/workspace.tar.gz -C /root/.openclaw/
for f in /tmp/openclaw-restore/workspace-*.tar.gz; do
tar xzf "$f" -C /root/.openclaw/
done
# 3. 启动
openclaw gateway start
5. 必查项(启动后 5 分钟验收清单)
- [ ]
openclaw status— 主服务健康 - [ ]
openclaw agents list— 9 个 agent 都在 - [ ]
openclaw cron list— 定时任务都在 - [ ] 发条飞书消息 — 通道正常
- [ ] 调个 skill(如天气、查基金)— skill 加载正常
- [ ] canmou 需要的话重建 venv:
cd /root/.openclaw/workspace-canmou/fundquant
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
6. 关键数据格式说明
记忆 = sqlite 数据库(不是 md)
memory/main.sqlite 里实际是:
CREATE TABLE files (path, source, hash, mtime, size); -- MEMORY.md + 历次 md
CREATE TABLE chunks (..., content, ...); -- 442 个记忆块
CREATE TABLE chunks_fts (...); -- 全文索引
CREATE TABLE embedding_cache (...); -- 向量缓存
整库带走就能恢复搜索能力,新服务器不用跑 memory build。
关键 md 文件(必带)
workspace/MEMORY.md -- 长期记忆(25K)
workspace/SOUL.md -- 人格配置
workspace/AGENTS.md -- Agent 路由
workspace/TOOLS.md -- 服务器别名 / API key
workspace/USER.md -- 用户信息
workspace/IDENTITY.md -- 身份档案
workspace/HEARTBEAT.md -- 心跳任务
workspace/PROGRESS.md -- 当前任务进度
7. 复盘:1.7G → 42M 怎么做到的
原始: 1.7G
丢弃:-1018M (sessions)
丢弃:-313M (canmou venv)
丢弃:-150M (其他 sessions)
丢弃:-63M (media)
丢弃:-120M (node_modules 散落)
─────────────────
剩下: 42M(核心)
节省 97.5% 体积,节省 100% 重建时间。
8. 复用的迁移原则(别再每次重新设计)
1. 迁移前先 du -ah | sort -rh 摸底,别直接 tar 整个目录
2. 能重建的全不背:node_modules / venv / sessions / 缓存
3. 黄金三件套 = 配置 + 工作区 + 记忆,所有 OpenClaw 迁移都是这个套路
4. 新服务器脚本是核心交付物,写好 init 脚本 = 迁移完成 90%
5. CDN 中转优于直连,scp 不一定通,CDN 永远通
6. SHA256 一定要验,传错版本调一天
7. token 有效期按生命周期算,生产包默认 10 年,调试包 7 天
附:本手册配套脚本
workspace/scripts/migrate-openclaw.sh— 备份workspace/scripts/migrate-openclaw-restore.sh— 还原init-new-server.sh— 新服务器一键脚本