把 OpenClaw 从一台机器迁移到另一台,核心动机通常是:本地跑 Agent 合盖就断,定时任务不可靠,或者换了新机器。整个过程不复杂,主要注意几个坑。
.openclaw 目录结构
~/.openclaw/
├── openclaw.json # 核心配置
├── credentials/ # 认证信息(API Key 等)
├── workspace/ # 人格、记忆、技能
├── agents/ # Agent 配置
├── memory/ # 记忆文件
├── cron/ # 定时任务
├── identity/ # 身份配置
├── completions/ # 补全配置
├── delivery-queue/ # 消息队列
├── devices/ # 设备配置
├── canvas/ # Canvas 相关
├── feishu/ # 飞书集成
├── browser/ # 浏览器相关
├── media/ # 媒体文件
└── logs/ # 日志
迁移步骤
1. 旧机器打包
bash
cd ~
tar -czf openclaw-backup.tar.gz .openclaw/
2. 传到新机器
bash
# 用 scp 或 rsync 均可
rsync -avz openclaw-backup.tar.gz user@<新机器IP>:~/
3. 新机器解压
bash
tar -xzf openclaw-backup.tar.gz -C ~/
4. 启动 OpenClaw
bash
openclaw onboard
几个关键坑
坑 1 - 路径硬编码:配置文件里可能有旧机器的绝对路径,需批量替换:
bash
grep -rl "/Users/旧用户名" ~/.openclaw/ | xargs sed -i 's|/Users/旧用户名|/home/新用户名|g'
坑 2 - 认证信息 :credentials/ 下的 API Key 直接跟着迁移即可复用。如果迁移到云服务器且支持 IAM(如 AWS),可以改用 IAM 角色,openclaw.json 中 provider 改为 amazon-bedrock 并删掉 apiKey 字段,安全性更好。
坑 3 - 时区 :cron/ 下的定时任务如果按本地时间写的,迁移到时区不同的服务器需要调整。比如从北京时间迁到 UTC,所有时间减 8 小时。
坑 4 - 外部渠道 :飞书(feishu/)、Telegram 等 webhook 地址如果绑定了旧机器 IP,需更新为新机器的 IP 或域名。