Files
membank/auto-check
12600k-rog-d4 b673ed62f9 docker
2026-08-24 00:35:30 +08:00
..
2026-08-24 00:35:30 +08:00
2026-08-24 00:35:30 +08:00
2026-08-24 00:35:30 +08:00
2026-08-24 00:35:30 +08:00
2026-08-24 00:35:30 +08:00
2026-08-24 00:35:30 +08:00
2026-08-24 00:35:30 +08:00
2026-08-24 00:35:30 +08:00
2026-08-13 22:49:50 +08:00
2026-08-24 00:35:30 +08:00

auto-check

自动化网段扫描 + SSH 登录 + 远程压力测试工具。

基于 cobra 命令行框架。

功能

子命令 功能
run 完整流程:发现 → SSH → 压测 全部
scan 仅扫描网段,发现存活设备 pkg/discovery
stress 对指定 IP 执行压力测试 pkg/stress + pkg/sshclient

安装

go build -o auto-check .

使用

# 查看帮助
./auto-check --help

# 仅扫描网段
./auto-check scan --cidr 192.168.1.0/24

# 对指定主机执行压力测试
./auto-check stress --ips 192.168.1.100,192.168.1.101 --user root --password secret --stress cpu,memory,disk

# 完整流程(扫描 → SSH → 压测)
./auto-check run --cidr 192.168.1.0/24 --user root --password secret --stress cpu,memory,disk

全局标志

标志 默认值 说明
--cidr 192.168.1.0/24 目标网段 (CIDR)
--user root SSH 用户名
--password (空) SSH 密码
--key (空) SSH 私钥路径
--port 22 SSH 端口
--timeout 3s 超时
--concurrency 50 并发扫描数
--report (自动生成) 报告输出路径

子命令标志

run / stress

标志 默认值 说明
--stress cpu,memory 压测类型: cpu, memory, disk, memnative, full
--duration 30s 持续时间
--threads 4 线程数
--ips (必填,仅stress) 目标 IP (逗号分隔)

压力测试类型

类型 工具 说明
cpu stress-ng CPU 全方法压测
memory stress-ng 内存压测
disk stress-ng 磁盘IO混合压测
memnative stressapptest 内存稳定性精压(数据完整性校验)
full stress-ng CPU+内存+磁盘 三合一综合压测

压测执行方式Docker 容器)

压测统一在 Docker 容器中执行:工具与测试脚本预装在镜像里,无需在目标机在线安装,环境一致性好(飞牛 NAS 默认已安装 Docker

架构设计

auto-check/
├── docker/                    # Docker 镜像维护目录(独立)
│   └── stress-test/
│       ├── Dockerfile         # 镜像定义
│       ├── scripts/           # 测试脚本(打包进镜像)
│       │   ├── run.sh         # 入口脚本(环境变量驱动)
│       │   ├── cpu.sh         # CPU 压测
│       │   ├── memory.sh      # 内存压测
│       │   ├── disk.sh        # 磁盘压测
│       │   └── ...
│       └── README.md
└── pkg/stress/
    └── runner.go              # 核心逻辑:送镜像 + 驱动容器测试

工作流程

  1. 检测目标机 Docker 可用性(不可用则判失败)
  2. 检查镜像是否存在(不存在则上传工程目录中的镜像 tar 并 docker load,不依赖 registry
  3. 启动容器执行测试(脚本在镜像内,环境变量传参)
  4. 解析容器输出 → 生成报告

配置方式(在 auto-check.yaml 中)

stress:
  docker_image: "stress-test:latest"           # 压测镜像(飞牛 NAS 默认支持 Docker
  docker_tar: "docker/stress-test/stress-test.tar"  # 本地镜像文件,目标机无镜像时自动上传并 load
  docker_args: "--network=host --privileged"

构建镜像(维护时使用)

cd docker/stress-test
docker build -t stress-test:latest .
# 导出到工程目录,供测试时上传分发(不依赖 registry
docker save -o stress-test.tar stress-test:latest

详细文档

镜像维护说明请参考:docker/stress-test/README.md

项目结构

auto-check/
├── main.go
├── cmd/
│   └── root.go              # 所有子命令
├── pkg/
│   ├── discovery/           # 设备发现
│   ├── sshclient/           # SSH 客户端
│   ├── stress/              # 压力测试Docker 容器驱动)
│   │   ├── types.go         # 类型定义
│   │   ├── tools.go         # Docker 环境检测
│   │   ├── metrics.go       # 指标定义 + 配置
│   │   └── runner.go        # 调度器(送镜像 + 驱动容器)
│   └── report/              # 报告模块
├── go.mod
└── README.md

⚠️ 请在授权设备上使用,未授权扫描/测试可能违反法律法规。