safesight-control/scripts/deploy/Manual.md
2026-02-25 11:00:55 +08:00

517 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 3588AdminBackend 部署脚本使用说明
> 本目录包含 3588AdminBackend 的所有部署相关脚本,支持离线环境下的安装、升级、卸载和日常运维。
---
## 目录
1. [快速开始](#快速开始)
2. [脚本清单](#脚本清单)
3. [详细使用指南](#详细使用指南)
4. [典型使用场景](#典型使用场景)
5. [常见问题](#常见问题)
---
## 快速开始
### 第一次部署(离线环境)
```bash
# 1. 挂载光盘/USB 后进入目录
cd /mnt/cdrom/3588admin-deploy
# 2. 检查环境
sudo ./scripts/check-env.sh
# 3. 执行安装
sudo ./scripts/install.sh
# 4. 修改配置
sudo nano /opt/3588admin/config/managerd.json
# 5. 启动服务
sudo 3588admin-start
# 6. 查看状态
sudo 3588admin-status
```
---
## 脚本清单
| 脚本 | 用途 | 执行位置 |
|------|------|----------|
| `build-offline-package.sh` | 构建离线部署包 | 联网机器 |
| `check-env.sh` | 环境检查 | 目标机器 |
| `install.sh` | 安装服务 | 目标机器 |
| `uninstall.sh` | 卸载服务 | 目标机器 |
| `upgrade.sh` | 升级服务 | 目标机器 |
| `start.sh` | 启动服务 | 目标机器 |
| `stop.sh` | 停止服务 | 目标机器 |
| `status.sh` | 查看状态 | 目标机器 |
| `3588admin.service` | Systemd 服务文件 | 安装时复制 |
---
## 详细使用指南
### 1. build-offline-package.sh
**用途**: 在联网机器上构建完整的离线部署包
**执行环境**: 有网络的 Linux 机器Ubuntu/Debian/CentOS
**前置条件**:
- Go 1.23+ 已安装
- 项目源码完整
**使用方法**:
```bash
# 在项目目录下执行
cd scripts/deploy
sudo ./build-offline-package.sh
# 输出位置: build/3588AdminBackend-离线部署包-YYYYMMDD.tar.gz
```
**输出内容**:
```
build/3588AdminBackend-离线部署包-20260225/
├── bin/managerd # 编译好的二进制
├── config/ # 配置文件
├── scripts/ # 部署脚本
├── systemd/ # 服务文件
├── docs/ # 文档
├── deps/ # 依赖包(可选)
├── VERSION # 版本信息
└── README-离线安装.txt # 快速安装指南
```
---
### 2. check-env.sh
**用途**: 检查目标系统是否满足运行要求
**执行环境**: 目标 Ubuntu 22.04 服务器
**检查项**:
- 操作系统版本
- CPU 架构
- 端口占用情况18080/TCP, 35688/UDP
- 防火墙配置
- 磁盘空间
- 必要工具
**使用方法**:
```bash
# 安装前检查
sudo ./scripts/check-env.sh
```
**输出示例**:
```
========== 3588AdminBackend 环境检查 ==========
[系统信息]
主机名: server01
操作系统: Ubuntu 22.04.5 LTS
✓ Ubuntu 22.04 detected
[硬件信息]
架构: x86_64
✓ x86_64 架构
CPU: 4 核
内存: 7.7Gi
[端口检查]
✓ 端口 18080 可用
✓ 端口 35688 可用
...
========== 检查总结 ==========
通过: 12 警告: 0 失败: 0
✓ 环境检查全部通过,可以安装
```
---
### 3. install.sh
**用途**: 安装 3588AdminBackend 到系统
**语法**:
```bash
sudo ./install.sh [安装目录]
```
**参数**:
- `安装目录`: 可选,默认为 `/opt/3588admin`
**使用方法**:
```bash
# 默认安装到 /opt/3588admin
sudo ./scripts/install.sh
# 自定义安装目录
sudo ./scripts/install.sh /usr/local/3588admin
```
**安装流程**:
1. 检查 root 权限
2. 安装依赖包(如有)
3. 创建安装目录
4. 复制二进制文件、配置、脚本
5. 设置执行权限
6. 创建命令快捷方式(`3588admin-start` 等)
7. 安装 Systemd 服务(可选)
**安装后操作**:
```bash
# 编辑配置文件
sudo nano /opt/3588admin/config/managerd.json
# 特别注意修改:
# - agent_token: 改为安全的随机字符串
# - listen: 如需外部访问改为 "0.0.0.0:18080"
```
---
### 4. uninstall.sh
**用途**: 完全卸载 3588AdminBackend
**语法**:
```bash
sudo ./uninstall.sh [安装目录]
```
**参数**:
- `安装目录`: 可选,默认为 `/opt/3588admin`
**使用方法**:
```bash
# 默认卸载
sudo ./scripts/uninstall.sh
# 卸载自定义目录
sudo ./scripts/uninstall.sh /usr/local/3588admin
```
**卸载内容**:
- 停止服务
- 删除 Systemd 服务
- 删除命令快捷方式
- 删除安装目录(会自动备份配置)
**注意**: 卸载前会自动备份 `managerd.json``/root/3588admin-backup-YYYYMMDDhhmmss/`
---
### 5. upgrade.sh
**用途**: 升级到新版本(保留配置)
**语法**:
```bash
sudo ./upgrade.sh [安装目录]
```
**参数**:
- `安装目录`: 可选,默认为 `/opt/3588admin`
**使用方法**:
```bash
# 升级流程
# 1. 停止服务
# 2. 备份现有数据和配置
# 3. 更新二进制文件
# 4. 更新脚本
# 5. 启动服务
sudo ./scripts/upgrade.sh
```
**升级前准备**:
1. 在新的部署包中确认 `bin/managerd` 是新版本
2. 执行升级脚本
**回滚方法**:
```bash
# 如升级后有问题,快速回滚
sudo systemctl stop 3588admin
sudo cp /root/3588admin-backup-xxx/managerd.old /opt/3588admin/bin/managerd
sudo systemctl start 3588admin
```
---
### 6. start.sh
**用途**: 启动 3588AdminBackend 服务
**使用方法**:
```bash
# 方式1: 使用快捷命令(推荐)
sudo 3588admin-start
# 方式2: 直接执行
sudo /opt/3588admin/scripts/start.sh
```
**功能**:
- 检查配置文件是否存在且格式正确
- 检查端口是否被占用
- 检查服务是否已在运行
- 后台启动服务并记录 PID
- 显示启动结果和监听地址
**日志位置**: `/opt/3588admin/logs/managerd.log`
---
### 7. stop.sh
**用途**: 停止 3588AdminBackend 服务
**使用方法**:
```bash
# 方式1: 使用快捷命令(推荐)
sudo 3588admin-stop
# 方式2: 直接执行
sudo /opt/3588admin/scripts/stop.sh
```
**功能**:
- 优雅停止(发送 SIGTERM等待最多 10 秒)
- 强制结束(如优雅停止失败)
- 清理 PID 文件
---
### 8. status.sh
**用途**: 查看服务运行状态和系统信息
**使用方法**:
```bash
# 方式1: 使用快捷命令(推荐)
sudo 3588admin-status
# 方式2: 直接执行
sudo /opt/3588admin/scripts/status.sh
```
**显示内容**:
- 基本信息(目录、配置文件路径)
- 二进制文件状态
- 配置文件内容和监听地址
- 进程状态(运行/停止)
- CPU/内存使用情况
- 网络端口监听状态
- HTTP API 连通性测试
- 日志文件列表和最新日志
---
### 9. 3588admin.service
**用途**: Systemd 服务配置文件
**使用方法**:
```bash
# 通常由 install.sh 自动安装
# 如需手动安装:
sudo cp scripts/3588admin.service /etc/systemd/system/
sudo systemctl daemon-reload
# 管理服务
sudo systemctl start 3588admin # 启动
sudo systemctl stop 3588admin # 停止
sudo systemctl restart 3588admin # 重启
sudo systemctl status 3588admin # 查看状态
sudo systemctl enable 3588admin # 开机自启
sudo systemctl disable 3588admin # 禁用自启
```
---
## 典型使用场景
### 场景1: 首次部署
```bash
# 在联网机器上
cd 3588AdminBackend/scripts/deploy
./build-offline-package.sh
# 复制到光盘/USB挂载到生产服务器
# 在生产服务器上
sudo ./scripts/check-env.sh
sudo ./scripts/install.sh
sudo nano /opt/3588admin/config/managerd.json # 修改配置
sudo 3588admin-start
sudo 3588admin-status
```
### 场景2: 日常运维
```bash
# 查看状态
sudo 3588admin-status
# 查看日志
tail -f /opt/3588admin/logs/managerd.log
# 重启服务
sudo 3588admin-stop
sudo 3588admin-start
# 或者使用 systemctl
sudo systemctl restart 3588admin
```
### 场景3: 版本升级
```bash
# 1. 在新的部署包中执行升级
sudo ./scripts/upgrade.sh
# 2. 验证升级
sudo 3588admin-status
# 3. 如出现问题,查看日志
tail -n 50 /opt/3588admin/logs/managerd.log
```
### 场景4: 修改配置
```bash
# 1. 停止服务
sudo 3588admin-stop
# 2. 修改配置
sudo nano /opt/3588admin/config/managerd.json
# 3. 验证配置格式
python3 -m json.tool /opt/3588admin/config/managerd.json
# 4. 启动服务
sudo 3588admin-start
```
### 场景5: 完全卸载
```bash
# 1. 备份配置(可选)
cp /opt/3588admin/config/managerd.json ~/managerd-backup.json
# 2. 执行卸载
sudo ./scripts/uninstall.sh
# 3. 确认删除
ls /opt/3588admin # 应提示不存在
```
---
## 常见问题
### Q1: 执行脚本时提示 "Permission denied"
**解决**:
```bash
chmod +x scripts/*.sh
sudo ./scripts/install.sh
```
### Q2: 安装后命令找不到3588admin-start 等)
**解决**:
```bash
# 检查是否创建了快捷方式
ls -la /usr/local/bin/3588admin-*
# 如未创建,手动创建或重新安装
sudo ./scripts/install.sh
# 或者使用完整路径
sudo /opt/3588admin/scripts/start.sh
```
### Q3: 如何查看更详细的日志?
**解决**:
```bash
# 实时查看日志
tail -f /opt/3588admin/logs/managerd.log
# 查看最近100行
tail -n 100 /opt/3588admin/logs/managerd.log
# 搜索错误
grep -i error /opt/3588admin/logs/managerd.log
```
### Q4: 服务启动后立即退出
**排查**:
```bash
# 1. 查看日志
tail /opt/3588admin/logs/managerd.log
# 2. 检查配置格式
python3 -m json.tool /opt/3588admin/config/managerd.json
# 3. 检查端口占用
sudo netstat -tlnp | grep 18080
```
### Q5: 如何修改监听端口?
**解决**:
```bash
# 1. 停止服务
sudo 3588admin-stop
# 2. 编辑配置
sudo nano /opt/3588admin/config/managerd.json
# 修改 "listen" 为 "127.0.0.1:18081" 或其他端口
# 3. 启动服务
sudo 3588admin-start
```
---
## 文件说明
```
scripts/
├── deploy/ # 部署脚本目录
│ ├── README.md # 本文件
│ ├── build-offline-package.sh # 构建离线包
│ ├── check-env.sh # 环境检查
│ ├── install.sh # 安装
│ ├── uninstall.sh # 卸载
│ ├── upgrade.sh # 升级
│ ├── start.sh # 启动
│ ├── stop.sh # 停止
│ ├── status.sh # 状态
│ └── 3588admin.service # Systemd服务
└── dev-run.sh # 开发运行脚本
```
---
**维护者**: 运维团队
**最后更新**: 2026-02-25
**版本**: 1.0