177 lines
4.8 KiB
Markdown
177 lines
4.8 KiB
Markdown
# Ping多多 - IP连通性检测工具
|
||
|
||
## 📋 功能说明
|
||
|
||
批量检测多个IP地址的连通性,支持并发ping测试,**实时显示检测进度**,结果分类显示并保存为JSON文件。
|
||
|
||
## ✨ v2.0 新特性
|
||
|
||
- 🎨 **彩色输出**:使用颜色区分在线/离线状态
|
||
- 📊 **实时进度**:每检测一个IP立即显示结果
|
||
- 📈 **成功率统计**:自动计算并显示服务器在线率
|
||
- 💡 **智能提示**:根据成功率给出不同的处理建议
|
||
- 🔍 **更好的错误提示**:详细的配置错误信息
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 安装依赖
|
||
|
||
```bash
|
||
pip install pyyaml colorama
|
||
```
|
||
|
||
### 2. 配置文件格式(YAML)
|
||
|
||
编辑 `config.yml` 文件:
|
||
|
||
```yaml
|
||
# Ping多多配置文件 - YAML格式
|
||
# 每行一个IP地址,冒号后添加注释(可选)
|
||
|
||
IP_LIST:
|
||
# Oracle Rac集群
|
||
10.10.14.220: "Oracle Rac节点1"
|
||
10.10.14.222: "Oracle Rac存储节点(IP冲突,待调整)"
|
||
|
||
# 虚拟化平台
|
||
10.10.30.161: "天融信3.5.6(DELL R730)(88G+1.7T)"
|
||
10.10.30.215: "H3C CAS7.0(X10主板)(128G+3.5T)"
|
||
|
||
# 可选参数配置
|
||
SETTINGS:
|
||
count: 2 # ping次数
|
||
timeout: 2 # 超时时间(秒)
|
||
max_workers: 3 # 并发线程数
|
||
```
|
||
|
||
### 3. 运行脚本
|
||
|
||
```bash
|
||
python MyPing配置IP.py
|
||
```
|
||
|
||
## 📝 配置说明
|
||
|
||
### IP_LIST 部分
|
||
- **格式**:`IP地址: "注释"`
|
||
- **注释可选**:可以留空字符串 `""`
|
||
- **支持分组**:使用 `#` 注释进行逻辑分组
|
||
- **每行一个IP**:简洁明了,易于维护
|
||
|
||
### SETTINGS 部分(可选)
|
||
| 参数 | 默认值 | 范围 | 说明 |
|
||
|------|--------|------|------|
|
||
| count | 2 | 1-10 | 每个IP的ping次数 |
|
||
| timeout | 2 | 1-10秒 | 超时时间 |
|
||
| max_workers | 10 | 1-50 | 并发线程数 |
|
||
|
||
## 📊 输出示例
|
||
|
||
```
|
||
============================================================
|
||
🔍 Ping多多 - IP连通性检测工具 v2.0
|
||
============================================================
|
||
|
||
============================================================
|
||
开始检测 33 个IP地址的连通性...
|
||
============================================================
|
||
|
||
[1/33] ✓ 10.10.14.221 - Oracle Rac节点2
|
||
[2/33] ✓ 10.10.14.222 - Oracle Rac存储节点
|
||
[3/33] ✗ 10.10.14.220 - Oracle Rac节点1
|
||
...
|
||
|
||
============================================================
|
||
检测完成!
|
||
============================================================
|
||
|
||
============================================================
|
||
📊 检测结果汇总
|
||
============================================================
|
||
|
||
【开机】:
|
||
✓ 10.10.14.221 (Oracle Rac节点2)
|
||
✓ 10.10.30.161 (天融信3.5.6)
|
||
...
|
||
|
||
【关机】:
|
||
✗ 10.10.14.220 (Oracle Rac节点1)
|
||
...
|
||
|
||
============================================================
|
||
📈 统计信息:
|
||
服务器总数 : 33
|
||
✓ 开机: 14 ✗ 关机: 19
|
||
⏱ 耗时: 31.47秒
|
||
📊 成功率: 42.4%
|
||
|
||
❌ 大量服务器离线,需要立即处理!
|
||
|
||
============================================================
|
||
|
||
✓ 结果已保存到 ping_results.json
|
||
```
|
||
|
||
## 🎯 性能优化建议
|
||
|
||
### 1. 调整并发数
|
||
- **少量IP(<50)**:max_workers = 10
|
||
- **中等规模(50-200)**:max_workers = 20
|
||
- **大规模(>200)**:max_workers = 30-50
|
||
|
||
### 2. 调整超时时间
|
||
- **局域网**:timeout = 1-2秒
|
||
- **跨网段**:timeout = 2-3秒
|
||
- **广域网**:timeout = 3-5秒
|
||
|
||
### 3. 调整ping次数
|
||
- **快速检测**:count = 1
|
||
- **常规检测**:count = 2-3
|
||
- **精确检测**:count = 4-5
|
||
|
||
## 🔄 版本历史
|
||
|
||
### v2.0 (当前版本) - 2024
|
||
- ✅ 改用 YAML 配置文件格式
|
||
- ✅ 添加实时进度显示
|
||
- ✅ 彩色输出界面
|
||
- ✅ 成功率统计和智能提示
|
||
- ✅ 更清晰的配置结构,支持分组注释
|
||
- ✅ 简化配置解析逻辑
|
||
- ✅ 保持向后兼容(仍支持旧版INI格式)
|
||
|
||
### v1.x
|
||
- 使用 INI 格式配置文件
|
||
- 需要 `ip1=`, `ip2=` 等前缀
|
||
- 无实时进度显示
|
||
|
||
## 💡 优势
|
||
|
||
1. **更易读**:YAML格式天然支持层级和注释
|
||
2. **易维护**:添加/删除IP无需重新编号
|
||
3. **更灵活**:支持分组管理不同类型的服务器
|
||
4. **标准化**:YAML是业界标准的配置格式
|
||
5. **可视化**:彩色输出和实时进度提升用户体验
|
||
6. **智能化**:自动分析系统健康状态
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
- 首次运行时会自动创建示例配置文件
|
||
- 如果 `config.yml` 不存在,会尝试加载旧的 `config.ini`
|
||
- 建议在修改配置后备份原文件
|
||
- Windows环境下colorama可能需要管理员权限才能正常显示颜色
|
||
|
||
## 🛠️ 故障排除
|
||
|
||
### 问题1:颜色不显示
|
||
**解决**:确保安装了colorama库
|
||
```bash
|
||
pip install colorama
|
||
```
|
||
|
||
### 问题2:配置文件加载失败
|
||
**解决**:检查YAML格式是否正确,可以使用在线YAML验证器
|
||
|
||
### 问题3:检测速度慢
|
||
**解决**:增加max_workers参数值,但注意不要超过50
|