迁移前准备
确认当前安装方式
docker ps | grep openclaw which openclaw # 如果是二进制安装
备份重要数据
# 备份配置文件 cp -r /opt/openclaw/config/ /backup/openclaw_config_backup/ # 备份数据文件(如果有) cp -r /opt/openclaw/data/ /backup/openclaw_data_backup/
不同安装方式的迁移方法
方式1:Docker 安装迁移
# 1. 停止当前容器
docker stop openclaw
# 2. 创建新目录
sudo mkdir -p /new/path/openclaw/{config,data,logs}
# 3. 复制数据到新位置
sudo cp -r /opt/openclaw/config/* /new/path/openclaw/config/
sudo cp -r /opt/openclaw/data/* /new/path/openclaw/data/
# 4. 修改 docker-compose.yml 或启动命令
# 编辑 docker-compose.yml 中的 volumes 映射
# 将 - /opt/openclaw/config:/app/config
# 改为 - /new/path/openclaw/config:/app/config
# 5. 重新启动
docker-compose -f /new/path/openclaw/docker-compose.yml up -d
方式2:二进制文件安装迁移
# 1. 停止服务 sudo systemctl stop openclaw # 2. 移动程序文件 sudo mv /opt/openclaw /new/path/ # 3. 更新服务文件 sudo vim /etc/systemd/system/openclaw.service # 修改 ExecStart 和工作目录 # ExecStart=/new/path/openclaw/bin/openclaw # WorkingDirectory=/new/path/openclaw # 4. 更新符号链接(如果有) sudo ln -sf /new/path/openclaw/bin/openclaw /usr/local/bin/openclaw # 5. 重新加载并启动 sudo systemctl daemon-reload sudo systemctl start openclaw
方式3:Python 源码安装迁移
# 1. 创建虚拟环境在新位置 cd /new/path python -m venv openclaw-env source openclaw-env/bin/activate # 2. 安装依赖 pip install -r /old/path/requirements.txt # 3. 复制源码和配置文件 cp -r /old/path/src/ /new/path/openclaw/ cp -r /old/path/config/ /new/path/openclaw/ # 4. 更新环境变量 export OPENCLAW_HOME=/new/path/openclaw export PYTHONPATH=/new/path/openclaw:$PYTHONPATH # 5. 修改启动脚本中的路径 sed -i 's|/old/path|/new/path|g' /new/path/openclaw/start.sh
配置文件更新
更新配置文件中的路径引用
# 查找并替换所有旧路径 find /new/path/openclaw -type f -name "*.yml" -o -name "*.yaml" -o -name "*.json" -o -name "*.ini" | xargs sed -i 's|/opt/openclaw|/new/path/openclaw|g'
更新环境配置文件
# 编辑环境文件 vim /new/path/openclaw/.env # 更新关键路径变量 OPENCLAW_CONFIG_DIR=/new/path/openclaw/config OPENCLAW_DATA_DIR=/new/path/openclaw/data OPENCLAW_LOG_DIR=/new/path/openclaw/logs
权限和所有权设置
# 设置正确的权限 sudo chown -R openclaw:openclaw /new/path/openclaw sudo chmod -R 755 /new/path/openclaw sudo chmod 644 /new/path/openclaw/config/*.yml
验证迁移
检查路径是否正确
# 检查服务状态 sudo systemctl status openclaw # 检查文件访问 ls -la /new/path/openclaw/config/ # 测试程序运行 /new/path/openclaw/bin/openclaw --version
验证功能
# 检查日志文件 tail -f /new/path/openclaw/logs/app.log # 测试API访问(如果有) curl http://localhost:8080/health
清理旧文件(可选)
确认新位置运行正常后:

# 备份旧文件后删除 sudo mv /opt/openclaw /opt/openclaw_old_backup_$(date +%Y%m%d) # 或直接删除 sudo rm -rf /opt/openclaw
注意事项
- 路径一致性:确保所有配置文件中引用的路径都已更新
- 符号链接:检查并更新系统中可能存在的符号链接
- 服务依赖:如果有其他服务依赖 OpenClaw,需要更新它们的配置
- 数据库路径:如果使用本地数据库,需要迁移数据库文件并更新连接字符串
- 防火墙/SELinux:新路径可能需要调整文件系统权限
快速迁移脚本示例
#!/bin/bash
# openclaw_migration.sh
OLD_PATH="/opt/openclaw"
NEW_PATH="/new/path/openclaw"
echo "开始迁移 OpenClaw 从 $OLD_PATH 到 $NEW_PATH"
# 停止服务
systemctl stop openclaw
# 创建目录结构
mkdir -p $NEW_PATH/{bin,config,data,logs}
# 复制文件
cp -r $OLD_PATH/bin/* $NEW_PATH/bin/
cp -r $OLD_PATH/config/* $NEW_PATH/config/
cp -r $OLD_PATH/data/* $NEW_PATH/data/
# 更新配置文件
find $NEW_PATH/config -type f -exec sed -i "s|$OLD_PATH|$NEW_PATH|g" {} \;
# 更新服务文件
sed -i "s|$OLD_PATH|$NEW_PATH|g" /etc/systemd/system/openclaw.service
# 重新加载服务
systemctl daemon-reload
systemctl start openclaw
echo "迁移完成!"
建议在执行迁移前先进行测试,确保新环境能够正常工作。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。