# Python **Repository Path**: jiruichao-ops/python ## Basic Information - **Project Name**: Python - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-10 - **Last Updated**: 2026-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python 运维工具集 #### 介绍 本仓库收录了日常运维工作中常用的 Python 脚本工具,涵盖 HTTP 文件上传服务、MySQL 数据校验、网络端口连通性检测等功能。提供 Python2 和 Python3 两个版本目录,按需选用。 #### 目录结构 ``` python/ ├── python2/ │ └── python2-http-service.py # Python2 HTTP 文件上传服务 │ └── python3/ ├── file-server/ │ └── file-server.py # Python3 HTTP 文件上传服务 ├── mysql-check/ │ └── mysql-check.py # MySQL 双库表行数一致性校验 └── network/ └── network_check.py # 基于 Excel 的网络端口连通性批量检测 ``` --- #### 模块说明 ##### 1. HTTP 文件上传服务 (`file-server`) 提供一个带 Basic Authentication 鉴权的 HTTP 文件上传服务,适用于内网环境中快速搭建临时文件接收服务(如接收 Docker 镜像 tar 包)。 | 版本 | 文件 | 监听端口 | 默认鉴权 | |------|------|----------|----------| | Python2 | `python2/python2-http-service.py` | 8080 | admin / passw0rd_alert@cmp | | Python3 | `python3/file-server/file-server.py` | 8080 | admin / passw0rd_alert@cmp | - 仅接受 POST 请求,从 `Content-Disposition` 头解析文件名保存至指定目录。 - Python3 版本默认以 `image.tar` 为固定文件名保存。 --- ##### 2. MySQL 双库表行数校验 (`mysql-check`) 对比源数据库与目标数据库之间所有表的行数是否一致,常用于数据迁移后的完整性校验。 - **校验逻辑**: 1. 分别连接源库和目标库,执行 `SHOW TABLES` 获取所有表名。 2. 对每张表执行 `SELECT COUNT(*)` 统计行数。 3. 逐表比对行数,输出不一致的表及差异详情。 - **配置方式**:修改脚本开头的 `SOURCE_CONFIG` 和 `TARGET_CONFIG` 字典,填入实际数据库连接信息。 --- ##### 3. 网络端口连通性批量检测 (`network_check`) 从 Excel 文件读取目标 IP 和端口列表,使用 telnet 协议批量检测网络连通性,结果输出为 Excel 报告。 - **支持的 IP 格式**: - 单个 IP:`192.168.1.1` - IP 段范围:`192.168.1.11-20` - 逗号分隔混合格式:`192.168.1.1,192.168.2.10-15` - **端口格式**:逗号分隔,如 `80,443,8443` - **输出结果**: - 详细结果文件:记录每个 IP:Port 组合的连通状态(Success / Failed + 错误原因) - 汇总报告文件:按 IP 统计成功/失败端口数 - **Excel 输入要求**:须包含 `目的地址` 列和 `目的端口` 列。 --- #### 安装依赖 ```bash # MySQL 校验脚本依赖 pip install pymysql # 网络检测脚本依赖 pip install pandas openpyxl ``` HTTP 文件上传服务仅使用 Python 标准库,无需额外安装。 --- #### 使用示例 ```bash # 启动 HTTP 文件上传服务(Python3 版本) python python3/file-server/file-server.py # 执行 MySQL 双库行数校验(需先修改配置) python python3/mysql-check/mysql-check.py # 执行网络端口连通性检测 python python3/network/network_check.py ``` --- #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request