### [Hermes Agent 迁移报告(适用于从旧服务器迁移到新服务器的完整步骤)](https://blog.20115.net/article/136) **Published:** 2026-06-05T01:53:47 **Author:** 王道博客 **Excerpt:** Hermes Agent 迁移报告(适用于从旧服务器迁移到新服务器的完整步骤) < 可能原因: cronjob 服务未开启或 enabled=falseResume this session with: list 检查 enabled:tr Hermes Agent 迁移报告 (适用于从旧服务器迁移到新服务器的完整步骤) ``` 1. 概览 - 工具:hermes_migrate.sh(已在旧服务器 ~/bin/ 生成) - 功能:一键打包、传输、解压 Herm​es 配置与数据,支持本地备份或远程同步。 - 适用场景:更换服务器、搬迁至新机器、灾备恢复。 2. 前置准备 项目: 系统 说明: Linux(RHEL、CentOS、Ubuntu 均可) 操作: 确认 bash、tar、scp 已安装 ──────────────────────────────────────── 项目: Python 说明: Python 3.11(或兼容) 操作: python3 --version
若未安装:yum install -y python3(RHEL)或 apt-get install -y python3(Ubuntu) ──────────────────────────────────────── 项目: pip 说明: Python 包管理 操作: python3 -m ensurepip ──────────────────────────────────────── 项目: git 说明: 代码管理(可选) 操作: git --version ──────────────────────────────────────── 项目: Hermes 安装 说明: 在新服务器上准备好 Herm​es 二进制或 pip install hermes-cli 操作: 参考官方文档 hermes setup ──────────────────────────────────────── 项目: SSH 访问 说明: 本机能够 SSH 进入新服务器 操作: ssh 正常登录 ──────────────────────────────────────── 项目: 网络 说明: 能够访问外部模型服务(OpenRouter、DeepSeek、Google Gemini) 操作: 检查端口 443 outbound 是否通畅 > 提示:若新服务器已装好 hermes,请先运行 hermes status 确认服务可以启动(即便没有配置文件也会输出 no config found)。 3. 迁移脚本说明 bash #!/bin/bash ~/bin/hermes_migrate.sh 用法: ./hermes_migrate.sh [backup|restore] [remote_host] - backup: 1. 生成时间戳文件 hermes_backup_YYYYMMDD_HHMMSS.tgz。 2. 打包用户主目录下的 .hermes(包含模型配置、凭证、技能、cron、记忆等)。 3. 若提供 remote_host 参数,会自动 scp 复制到目标机器的 ~/ 目录。 - restore: 1. 需要把打好的压缩包放到新机器的任意位置。 2. 执行 ./hermes_migrate.sh restore 即可解压到用户根目录的 .hermes。 3. 完成后,可自行检查文件权限,确保 ~/.hermes 属于当前用户。 4. 迁移步骤 4.1 在旧服务器执行备份 bash 给脚本加执行权限(若已执行可跳过) chmod +x ~/bin/hermes_migrate.sh 本地备份(生成文件在 ~ 目录) ./hermes_migrate.sh backup 若想直接同步到新服务器(IP 或域名) ./hermes_migrate.sh backup - 结果:在旧服务器 ~/ 生成类似 hermes_backup_20260604_154210.tgz 的压缩包。 - 若使用远程参数,脚本会在传输完成后提示解压命令。 4.2 在新服务器准备环境 bash 安装必要依赖(示例为 RHEL/CentOS) sudo yum install -y python3 python3-pip tar openssh-clients 安装 Hermes(如已装可跳过) python3 -m pip install --upgrade hermes-cli - 确认 hermes 命令可用:hermes --version 4.3 将备份文件复制至新服务器(若未使用脚本远程传输) bash 从旧服务器把备份拉到新机器(在新机器上执行) scp user@old-server:~/hermes_backup_20260604_154210.tgz ~/ 4.4 在新服务器恢复 bash 给脚本加执行权限(如果你把脚本也拷贝过去) chmod +x ~/bin/hermes_migrate.sh 恢复备份 ./hermes_migrate.sh restore ~/hermes_backup_20260604_154210.tgz > 恢复后,.hermes 目录与旧服务器完全一致,包括: - config.yaml(模型、provider、cron 等配置) - .env(API Key、凭证) - skills/(自定义 Skill) - cron/(定时任务脚本) - memory/(持久记忆) 4.5 验证迁移成功 bash 查看配置是否读取 hermes config get model.default hermes config get model.provider hermes config get model.api_key # 注意输出会被脱敏 列出已有的技能 hermes skills list 检查 cron 任务 hermes cron list 启动 Hermes(如果使用 systemd 服务) systemctl --user restart hermes.service systemctl --user status hermes.service - 若看到 hermes service is active (running) 并且 hermes cron list 能列出原来的任务,则迁移成功。 5. 常见问题 & 解决方案 场景: 恢复后 hermes 报错 “config not found” 可能原因: .hermes 权限不对或解压路径错误 处理办法: ls -la ~/.hermes 检查所有文件归属用户,确保是当前用户;若在根目录执行 tar -xzf,请确认使用 -C ~ 参数 ──────────────────────────────────────── 场景: API Key 被截断 可能原因: .env 写入时被 secret‑redaction 截断 处理办法: 参考 hermes‑model‑configuration skill 中的 “⚠️ 写入 .env 的坑”章节,用 write_file 直接写入完整 key,或使用 Python 脚本写入 ──────────────────────────────────────── 场景: Cron 任务未启动 ``` < 可能原因: cronjob 服务未开启或 enabled=false Resume this session with: list 检查 enabled:true;若未启动,使用 systemctl –user enable –now hermes-cron.service(若有) hermes –resume 20260604\_113003\_659a78──── hermes -c “Current Time Inquiry” 可能原因: Google Gemini 免费配额已用尽 Session: 20260604\_113003\_659a78outer,或者在 GCP 项目中升级计费、检查 API 限制 Title: Current Time Inquiry──────── Duration: 10h 21m 58sprovider not found” Messages: 84 (12 user, 60 tool calls) \[root@SoJjlun9YRkPf ~\]# fig set model.provider “” 清空,或改为对应新 provider(如 deepseek、openrouter) ``` 6. 完整迁移报告(示例) [2026-06-04 15:42:10] 迁移脚本路径:/root/bin/hermes_migrate.sh [2026-06-04 15:42:12] 生成备份文件:/root/hermes_backup_20260604_154210.tgz (size: 12.3 MB) [2026-06-04 15:42:17] 通过 scp 将备份传输至新服务器 192.0.2.45 [2026-06-04 15:42:34] 在新服务器解压完成,恢复路径:/root/.hermes/ [2026-06-04 15:43:01] 检查模型配置 → model.default = openrouter/free [2026-06-04 15:43:05] 检查 provider & API key → provider = openrouter, key 已完整 [2026-06-04 15:43:11] 列出技能 → 85 条自定义 skill [2026-06-04 15:43:14] 列出 cron 任务 → 包含 “服务器健康监控” 与 “sdoculb-monitor” [2026-06-04 15:43:20] 重启 Hermes 服务 → 状态 active (running) [2026-06-04 15:43:25] 迁移成功,所有配置、凭证、cron 与 skill 完整复原 > 备注:上述时间戳仅为示例,实际执行时请自行记录。 7. 后续建议 1. 备份策略:建议在每次重大改动(新增 skill、修改 cron)后执行一次 backup,并把压缩包存放在离线存储(对象存储、NAS)。 2. 监控:在新服务器上开启 hermes cron 的 “服务器健康监控” 任务,以便及时发现服务异常。 3. 文档同步:若你在 /root/.hermes/skills/ 中维护了自定义文档,可在新机器上使用 git 进行版本管理,方便协同开发。 ``` **Tags:** Hermes **Categories:** AI智能体 ---