这两天实验室网络不给力,后来发现是有人占用了实验室太多的带宽,而登陆到实验室老的h3c s5500交换机上看端口流量情况很不方便,于是萌生写个小工具来统计端口流量情况,已求找到谁占用了大量带宽。
于是查了下,发现python 有个telnetlib的库,登陆交换机以及进行简单的操作相当简单,于是就写了这么个小工具:
*************************************工作原理********************************************
1、本程序采用telnet的方式登陆到交换机并通过不停的发送display interface [接口] 的方式请求交换机接口
信息并从中提取total input 和 total output的方式计算当前端口速率。
2、本程序仅统计状态为UP的端口的信息。使用display brief interface获取到状态为UP的接口。
3、本程序仅统计gigabytes端口。
*************************************其他**********************************************
1、第一次统计信息,由于没有时间,信息不准确
2、速度的单位都是MB
3、统计结果只能作为参考,并不能代表速率。
4、由于交换机本身更新接口信息速度并不快,而且telnet发送命令回传耗时也较大,本程序设置最小刷新时间,
当前为5s,若由于请求交换机接口所耗时超过5s,则刷新时间为请求耗时时间。
python3(未调试通过)
#!/usr/bin/python
import re
import telnetlib
import time
import platform
import os
Host = '192.168.2.65'
username = ''
password = ''
finish = '<....>'
MIN_INTERVAL = 5.0 # use float
PORT_COUNT = 52 # h3c s5500 has 52 gigabyte ports
# return system type as a string
def get_system_info():
sys_platform = platform.system()
if sys_platform == 'Linux' or sys_platform == 'Darwi