新增 auto-check 工具:网段扫描+SSH登录+压力测试永久循环工作流
- pkg/discovery: TCP端口探测存活主机,ARP表解析MAC作为设备唯一标识 - pkg/sshclient: SSH连接(密码/密钥认证)与远程命令执行 - pkg/stress: stress-ng/stressapptest 压测(cpu/memory/disk/memnative/full)+温度与dmesg监控 - pkg/report: 检测报告生成(文本/JSON) - pkg/workflow: 永久循环工作流(间隔可配),MAC唯一标识设备,增量测试+状态变化打印 - pkg/config: YAML分类配置(scan/ssh/stress/report/workflow) - cmd: cobra入口,仅 --config 指定配置文件
This commit is contained in:
90
auto-check/README.md
Normal file
90
auto-check/README.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# auto-check
|
||||
|
||||
自动化网段扫描 + SSH 登录 + 远程压力测试工具。
|
||||
|
||||
基于 [cobra](https://github.com/spf13/cobra) 命令行框架。
|
||||
|
||||
## 功能
|
||||
|
||||
| 子命令 | 功能 | 包 |
|
||||
|--------|------|-----|
|
||||
| `run` | 完整流程:发现 → SSH → 压测 | 全部 |
|
||||
| `scan` | 仅扫描网段,发现存活设备 | `pkg/discovery` |
|
||||
| `stress` | 对指定 IP 执行压力测试 | `pkg/stress` + `pkg/sshclient` |
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
go build -o auto-check .
|
||||
```
|
||||
|
||||
## 使用
|
||||
|
||||
```bash
|
||||
# 查看帮助
|
||||
./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+内存+磁盘 三合一综合压测 |
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
auto-check/
|
||||
├── main.go
|
||||
├── cmd/
|
||||
│ └── root.go # 所有子命令
|
||||
├── pkg/
|
||||
│ ├── discovery/ # 设备发现
|
||||
│ ├── sshclient/ # SSH 客户端
|
||||
│ ├── stress/ # 压力测试
|
||||
│ │ ├── types.go # 类型定义
|
||||
│ │ ├── tools.go # 工具检测 + 监控
|
||||
│ │ ├── runners.go # 压测实现
|
||||
│ │ └── runner.go # 调度器
|
||||
│ └── report/ # 报告模块
|
||||
├── go.mod
|
||||
└── README.md
|
||||
```
|
||||
|
||||
> ⚠️ 请在授权设备上使用,未授权扫描/测试可能违反法律法规。
|
||||
Reference in New Issue
Block a user