查看“︁OpenClaw迁移服务器”︁的源代码
←
OpenClaw迁移服务器
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:*、
用户
您可以查看和复制此页面的源代码。
<markdown style="gemini"> # OpenClaw 服务器迁移记录 > 迁移日期:2026-05-21 > 源服务器:VM-0-9-ubuntu(root 用户) > 目标服务器:VM-0-8-ubuntu(openclaw 用户) --- ### 整体思路:先在新服务器创建好环境、安装最新版本OpenClaw跑起来,然后老服务器上也升级到最新版本,再把老服务器上的 .openclaw/ 整个目录拷贝到新服务器上,同时由于路径差异、把路径替换更新,最后运行openclaw doctor修复跑起来。 ## 一、创建系统用户 ```bash # 创建一个名为 openclaw 的系统用户,指定家目录 sudo adduser openclaw --system --group --home /home/openclaw ``` ## 二、配置 sudo 权限 ```bash sudo visudo ``` 添加以下行: ``` openclaw ALL=(ALL) NOPASSWD: ALL ``` 切换到 openclaw 用户: ```bash sudo su -s /bin/bash openclaw ``` ## 三、安装 OpenClaw ```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` ### 配置 PATH 编辑 `~/.bashrc`,在末尾添加: ```bash export PATH="/home/openclaw/.npm-global/bin:$PATH" ``` 刷新配置: ```bash source ~/.bashrc ``` ## 四、解决 systemd --user 不可用 安装 gateway 时报错: ``` systemctl --user unavailable: Failed to connect to bus: No medium found ``` **原因**:系统用户默认没有持久化的 systemd 用户会话。 **修复步骤**: ```bash # 1. 启用 linger(允许用户服务在未登录时持续运行) sudo loginctl enable-linger openclaw # 2. 设置 XDG_RUNTIME_DIR 环境变量 export XDG_RUNTIME_DIR=/run/user/$(id -u) # 3. 写入 .bashrc 永久生效 echo 'export XDG_RUNTIME_DIR=/run/user/$(id -u)' >> ~/.bashrc # 4. 验证 systemctl --user status ``` 正常的话,会打印类似这些: ```bash systemctl --user status ● VM-0-8-ubuntu State: running Units: 139 loaded (incl. loaded aliases) ``` ## 五、管理界面访问(SSH 隧道) 在本地电脑执行,建立加密通道: ```bash ssh -L 18789:localhost:18789 openclaw@<服务器公网IP> ``` 原理:本地 `127.0.0.1:18789` → 加密隧道 → 服务器 `127.0.0.1:18789` 本地浏览器打开 `http://localhost:18789` 即可访问管理界面。 ## 六、常用运维命令 ```bash openclaw status --all # 查看所有状态 openclaw doctor # 完整健康检查 openclaw logs --follow # 实时日志 openclaw gateway restart # 重启服务 openclaw update # 升级到最新版 ``` > **迁移前建议**:两边服务器先升级到同一个版本再开始。 ## 七、备份与恢复 ### 7.1 源服务器备份 ```bash # 停止网关 openclaw gateway stop # 打包状态目录 cd ~ tar -czf openclaw-state-backup.tar.gz .openclaw ``` ### 7.2 覆盖到新服务器 将备份包上传到新服务器后解压覆盖到 `~/.openclaw/`。 ### 7.3 路径替换 > ⚠️ **注意**:源服务器使用 root,目标使用 openclaw 用户,配置文件中存在硬编码的旧路径,必须批量替换。 替换脚本参考(脚本替换前会备份整个.openclaw目录): `migrate-openclaw.sh`: ```bash # 1. 备份(放在 .openclaw 目录外,避免递归) cp -r ~/.openclaw ~/openclaw_backup_$(date +%Y%m%d_%H%M%S) # 2. 找出所有包含 /root/.openclaw 的文本文件(排除二进制) grep -rl '/root/.openclaw' ~/.openclaw --exclude-dir=backup_* | while read -r file; do echo "正在处理: $file" sed -i 's|/root/.openclaw|/home/openclaw/.openclaw|g' "$file" done # 3. 验证是否还有残留 grep -r '/root/.openclaw' ~/.openclaw --exclude-dir=backup_* ``` ### 7.4 踩坑:数据库文件被误伤 > 📌 `sed -i` 会对所有匹配文件执行文本替换。SQLite 数据库文件(`main.sqlite`)是**二进制文件**,不应被 `sed` 处理,否则会损坏。 **恢复方法**: ```bash # 从提前备份的目录中恢复数据库 cp /home/openclaw/openclaw_backup_20260521_005100/memory/main.sqlite \ .openclaw/memory/main.sqlite ``` ## 八、验证与启动 ```bash openclaw doctor # 健康检查 openclaw doctor --fix # 自动修复 openclaw gateway restart # 重启网关 openclaw tui # 进入 TUI 管理界面 ``` --- ## 参考 - OpenClaw 官方安装文档:https://docs.openclaw.ai - 问题排查:https://docs.openclaw.ai/troubleshooting </markdown>
返回
OpenClaw迁移服务器
。
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
设置
查看历史
更多
搜索
导航
首页
Ubuntu
Android
C&CPP
Java
Python
AI
大杂烩
最近更改
工具
所有页面
文件列表
页面信息
特殊页面