| 客户主机 | Web 前端 | 后端 | Bridge | 服务端口 | 待执行 | 最后心跳 | 状态 | 操作 |
|---|
| 下发时间 | 客户 | 类型 | 状态 | 结果 |
|---|
| 下发时间 | 客户 | 类型 | 状态 | 结果 |
|---|
| 时间 | 版本 | 包大小 | SHA256 | 操作 |
|---|
| 下发时间 | 命令ID | 客户 | 类型 | 目标版本 | 状态 | 结果 |
|---|
| 客户主机 | 最后心跳 | 离线时长 | 当前版本 |
|---|
| 完成时间 | 客户 | 类型 | 原因 |
|---|
| 时间 | 来源IP | 操作 | 详情 |
|---|
agent.ps1 的 $Token,全部完成后在上方提示中「立即作废」旧密钥,到期也会自动失效。
$Token 必须同步更新,否则将无法连接中心。密钥保存后立即生效。
--? 整体架构:客户机找你,你不用连客户机
存放待执行命令
每台客户服务器上装一个很小的 agent 脚本(Windows 计划任务,每 2 分钟运行一次)。它做三件事:上报本机版本和端口 → 领取你下发的命令 → 执行命令并回报结果。更新、重启、查状态全部自动化,你只需要在本页面点按钮。
1 怎么添加新的客户主机
点「主机管理」右上角 [+ 添加客户主机],填一个客户编号(英文,如 client-C)和备注名(如"张先生")。登记后主机显示为 待上线。
把本机 update-center\agent 整个文件夹复制到客户服务器(任意目录,如 C:\gq-agent)。共 3 个文件:agent.ps1、安装agent.bat、卸载agent.bat。
用记事本打开 agent.ps1,只改顶部【配置区】前 4 行。选一台已登记的主机,下面自动生成对应配置,直接复制粘贴覆盖:
在客户机上右键管理员运行 安装agent.bat。它注册一个 Windows 计划任务(SYSTEM 账户、每 2 分钟一次、无需有人登录)。
回到本页等 2 分钟,主机变成绿色 在线,版本、端口状态全部自动上报。
$AppRoot 必须指向客户机业务系统根目录(里面要有 start.bat / stop.bat),agent 更新后靠这两个脚本重启服务。$Token 必须和中心一致,否则会被拒绝(403)。卸载主机 = 客户机运行"卸载agent.bat",再在本页删除记录。2 怎么更新代码(发版)
本地打包:把改好的业务系统整个文件夹压成一个 zip。zip 根目录必须包含一个 versions.json,内容如下(agent 靠它上报版本号):
上传发版:到「发版管理」,填新版本号(和 versions.json 保持一致),选择 zip,点 [上传并发布]。上传时可见进度条,发布后版本号立即生效。
推送:点 [向全部在线主机推送更新];或者到「主机管理」对某一台点 [更新](适合先给一台试点验证,再全量推)。
看结果:2 分钟内客户机领取命令并执行,「最近命令」里每台主机一行结果记录,变绿=成功。主机列表里版本没跟上的会自动标红。
AppRoot.bak → 暂存客户配置(server\config.json、server\data 等,客户的密钥配置不会丢、不用重新配置)→ 解压覆盖 → 还原配置 → 重启服务 → 健康检查 → 失败自动回滚旧版,并在命令历史里告诉你失败原因。3 三个命令分别做什么
更新:执行一次完整发版流程(见上)。重启:只执行 stop.bat + start.bat 并做端口健康检查,不换代码,适合服务卡死时远程救急。状态:立刻回报三个端口(前端5000/后端9091/桥接5001)是否存活和当前版本,不改变任何东西。
4 更新状态流转与报错处理
命令状态怎么流转:待领取 → 更新中 · 下载新包 → 完成 / 失败。执行中会显示客户机当前做到哪一步:下载新包 → 备份旧版 → 保存客户配置 → 解压新版本 → 还原客户配置 → 重启服务 → 健康检查;如失败则出现"自动回滚中"阶段。
报错自动翻译:客户机返回的报错通常是英文技术信息(PowerShell 异常等)。系统内置报错知识库,命令失败时会自动生成红色诊断卡片:中文原因 + 处理办法,照着做即可;卡片底部保留原始报错,便于深入排查。已覆盖的典型错误:网络不通 / 密钥不匹配(403) / 包不存在(404) / 磁盘空间不足 / 文件被占用 / 权限不足 / zip 损坏 / 健康检查失败 / versions.json 格式错等。
实时盯一台主机:打开主机详情抽屉,它每 3 秒自动刷新,可以看着更新一步步走完。
5 常见问题
主机一直"离线"?
依次检查:客户机计划任务是否存在(运行 schtasks /Query /TN "GoldenQuantUpdateAgent")→ agent.ps1 里 $CenterUrl 能否从客户机访问(上云后要用 https 域名,不能用 127.0.0.1)→ $Token 是否与中心一致。排查日志:客户机 agent 目录下 agent.log。
全部主机同时离线?
多半是中心服务本身停了。宝塔里找到 Node 项目"update-center"重启即可;数据都在 data 目录的 json 文件里,不会丢。
更新失败了怎么办?
先别慌——失败会自动回滚,客户机仍跑旧版,不影响交易。看「最近命令」里的失败原因;再到客户机看 agent.log。常见原因:zip 里缺 start.bat / 端口被占用 / 磁盘空间不足。修复后重新发版再推一次即可。
客户换了服务器/重装系统?
在新机器上重新装 agent(配置里的 $ClientId 用原来的编号),主机列表会自动恢复绑定,历史命令记录还在。