跳到主要内容

使用方法

最后更新于:

使用方法

这是一个批量服务器IP检测+SSH远程执行命令的自动化脚本,我给你整理了超详细、零基础可操作的使用方法,严格按步骤执行即可:

一、脚本核心功能

  1. 读取Excel中的IP列表
  2. 批量Ping检测IP是否通
  3. 并发SSH登录服务器执行命令
  4. 自动生成结果Excel(失败标红)
  5. 控制台彩色输出执行进度

二、第一步:安装依赖库

脚本用到了第三方库,必须先安装,打开电脑的命令提示符(CMD)/终端,执行:

1pip install paramiko ping3 openpyxl

三、第二步:准备IP表格

  1. 脚本同一文件夹下,新建一个Excel文件,命名必须为 ip.xlsx
  2. 打开Excel,工作表名保持默认 Sheet1
  3. 表格格式要求:
    • A列:存放服务器IP地址
    • 第1行:可以写表头(如IP地址),也可以空着
    • 第2行开始:逐行填写需要检测的服务器IP ✅ 示例:
      A列(IP)
      IP地址
      192.168.1.10
      192.168.1.11
      10.0.0.5

四、第三步:修改核心配置(最重要!)

打开脚本文件,找到 【核心配置】 区域的 Config 类,根据你的服务器信息修改

 1@dataclass
 2class Config:
 3    # 文件配置(默认不用改)
 4    SOURCE_EXCEL: str = "ip.xlsx"
 5    SHEET_NAME: str = "Sheet1"
 6    
 7    # ========== 必须修改的SSH配置 ==========
 8    SSH_USER: str = "root"          # 服务器登录用户名(如root、admin)
 9    SSH_PASSWORD: str = "123456"    # 服务器登录密码
10    SSH_PORT: int = 22              # SSH端口(默认22,自定义端口改这里)
11    
12    # ========== 可选配置 ==========
13    MAX_WORKERS: int = 10           # 并发线程数(电脑性能差就改小,如5)
14    # 要执行的Linux命令(支持多行、管道符、特殊字符,三引号包裹)
15    LINUX_COMMAND: str = """
16hostname && uptime
17"""

常用修改示例:

  1. 执行查看磁盘空间命令:LINUX_COMMAND: str = "df -h"
  2. 执行查看内存命令:LINUX_COMMAND: str = "free -h"
  3. 多命令用;分隔:hostname; df -h

五、第四步:运行脚本

  1. 确保 ip.xlsx 和脚本在同一个文件夹
  2. 打开CMD/终端,进入脚本所在目录
  3. 执行运行命令:
    1# Windows系统
    2python 脚本文件名.py
    3
    4# Mac/Linux系统
    5python3 脚本文件名.py

六、第五步:查看执行结果

1. 控制台输出

  • 彩色显示每个IP的处理状态(蓝色=处理中、绿色=成功、红色=失败)
  • 最后自动汇总:总IP数、成功数、失败数、跳过数

2. Excel结果文件

脚本会自动生成新文件result-年月日_时分秒.xlsx

  • A列:原始IP
  • B列:执行结果(Ping结果/SSH执行结果/错误信息)
  • 失败/Ping不通/IP非法:单元格自动标红
  • 列宽自动适配,方便查看

七、高级用法(可选)

1. SSH私钥登录(替代密码)

如果服务器用密钥登录,修改配置:

1SSH_KEY_PATH: Optional[str] = "id_rsa"  # 填写私钥文件路径
2SSH_PASSWORD: str = ""  # 密码留空

2. 调整超时时间

网络差的情况下,可加大超时:

1PING_TIMEOUT: int = 5       # Ping超时5秒
2SSH_CONNECT_TIMEOUT: int = 5 # SSH连接超时5秒

八、常见问题&注意事项

  1. 脚本报错:未找到ip.xlsx → 检查文件名是否正确、是否和脚本在同一文件夹
  2. 报错:Excel文件被占用 → 关闭所有打开的ip.xlsx/result.xlsx文件
  3. 所有IP都Ping不通/SSH失败 → 检查本地与服务器网络互通、服务器防火墙放行22端口/ICMP协议
  4. 认证失败 → SSH用户名/密码/密钥填写错误
  5. SSH异常 → 目标服务器未开启SSH服务

总结

  1. 装依赖 → 建ip.xlsx填IP → 改配置(用户名/密码/命令)→ 运行脚本 → 看结果
  2. 全程无需手动操作,全自动批量处理服务器
  3. 结果自动保存+标红,排查问题超方便

亲测效果

  1. 下载batch_server_run-v4.pyip.xlsx文件
  2. 修改ip.xlsx文件(把需要批量执行的ip写进去)
  3. 修改batch_server_run-v4.py(修改ssh用户名、密码、端口号、要执行的linux命令)
  4. 执行代码:python batch_server_run-v4.py

Python 中使用三引号多行字符串

你说得非常对!用三引号多行字符串编写 Linux 命令确实更友好: ✅ 支持多行命令 ✅ 支持管道符 |重定向 > 等特殊字符 ✅ 代码可读性拉满,不用挤在一行 ✅ 复制粘贴命令更方便

三引号命令使用示例(直接替换即可)

示例1:查看系统信息(多行)

1LINUX_COMMAND: str = """
2hostname
3uptime
4df -h
5free -h
6"""

示例2:带管道符的命令

1LINUX_COMMAND: str = """
2ps -ef | grep java
3netstat -tulpn | grep 22
4"""

示例3:复杂运维命令

1LINUX_COMMAND: str = """
2cat /etc/os-release
3systemctl status firewalld
4"""

示例4:变量$PWD

1LINUX_COMMAND: str = """
2echo "当前路径:$PWD"
3"""
最新文章