linux查看网卡的状态,linux查看所有网卡状态
rxdhj,航班更改,添加了kddxgz,全局变量太弱。什么时候变更为产量
#!/usr/bin/env python
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#网卡流量。=网卡状态。巴拉圭
#惠利
#2015-07-07
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
导入系统
导入时间
导入操作系统
导入是
导入副本
#导入
类状态(对象) :
def __init__(self):
self.color={
紫色: 033[1;35;2m ,
红色: 033[1;31;2m ,
绿色: 033[1;32;2m ,
默认: 033[0; 0米
}
self.freshtime=1
self.maxnic=4
self.width=10
自我G=1024 * 1024 * 1024
自我M=1024 * 1024
自我K=1024
self.commlen=120
def__printf(self,string):
sys.stdout.write(字符串)
sys.stdout.flush(
def__purple(self,string):
返回" % s % s % s"%(self。color[ purple ],string,self.color[default])
def__red(self,string):
返回% s % s % s“%(self . color[ red ],string,self.color[default]))
def__green(self,string):
返回% s % s % s“%(self . color[ green ],string,self.color[default]))
def_theme(self,front,end,num,bool):
num=self .__int2str(数字)
if bool==错误:
自我__printf(frontself ._ _ red)num(end( n))))))))652
elif bool==right :
自我_ _ printf(正面自我. _ _ green (num ) end))))。
否则:
打印颜色标志错误
是sys.exit(0)
def_gettime(self):
现在时间=时间。strftime(% y-% m-% d % h:% m 3360% s))
返回通知时间
def _ _解析器(自身,网卡) :
数据={}
pattern_nic=%s: %nic
尝试:
NiCPF=open(/proc/net/dev), r ))
除了IOError,e:
是sys.exit(0)
对于nicpf中的每一行:
eachLine=eachLine.strip(
info_NIC=re.search(pattern_NIC,eachLine)))))))))))))))。
如果信息_网络接口卡不为无:
nic_status=eachLine.split(
data[ rx _ bytes ]=int(NIC _ status[1])8
data[ rx _ packets ]=int[NIC _ status[2]]
data[ rx _ dropped ]=int[NIC _ status[4]]
data[ tx _ bytes ]=int(NIC _ status[9])8
data[ tx _ packets ]=int[NIC _ status[10]]
data[ tx _ dropped ]=int[NIC _ status[12]]
返回数据
def_int2str(self,num):
如果数字自我.g:
num=“% .hxsdbq(num*1.0/self.g))。
否则如果数字自我。男:
num=%.1fm%(num*1.0/self.m))。
否则如果数字自我100 . k:
num=%.1fk%(num*1.0/self.k))。
否则:
num=%.1f %(num * 1.0)
返回数值
def_show(self,nic,b,p,d,flag):
自我__printf(self .__gettime()
自我__printf(self ._ _紫色)网络中心(自身宽度) )
自我。_ _主题(标志" bps:" 、"位/秒"、b 、"右")
自我。_ _主题(标记数据包: ,数据包/秒,p,’右).
自我. class _ _ theme(flag dropped:), pkts/s ,d, error ()))))))))))。
efprocess(自身,网卡,编号) :
自我. count(网卡,数字)).
定义_ _计数(自身、网卡、数字) :
全局rx_b0、rx_b1、rx_b2、rx_b3、rx_p0、rx_p1、rx_p2、rx_p3、rx_d0、rx_d1、rx_d2、
全局tx_b0、tx_b1、tx_b2、tx_b3、tx_p0、tx_p1、tx_p2、tx_p3、tx_d0、tx_d1、tx_d2、
字典=自我。_ _解析器(网卡)
如果数字==0:
自我. show(NIC,DICT(rx_bytes ) )-rx_B0,DICT (rx _ packets )-rx_P0,dict ) rx_dropped
rx_b0,rx_p0,rx_d0=dict[rx_bytes],dict[rx_packets],dict[rx_dropped]
自我. show(NIC,DICT(tx_bytes ) )-tx_B0,DICT (tx _ P0,dict ) ) tx_dropped
tx_b0,tx_p0,tx_d0=dict[tx_bytes],dict[tx_packets],dict[tx_dropped]
否则如果数==1:
自我. show(网卡,字典(rx _字节))-rx_B1,字典(接收数据包)-接收P1,字典)接收_丢弃
rx_b1,rx_p1,rx_d1=dict[rx_bytes],dict[rx_packets],dict[rx_dropped]
自我. show(网卡,字典(tx_bytes ) )-tx_B1,字典(德克萨斯P1,字典))tx_dropped
tx_b1,tx_p1,tx_d1=dict[tx_bytes],dict[tx_packets],dict[tx_dropped]
否则如果数==2:
自我. show(NIC,DICT(rx_bytes ) )-rx_B2,DICT (rx _ packets )-rx_P2,DICT)rx _丢弃
rx_b2,rx_p2,rx_d2=dict[rx_bytes],dict[rx_packets],dict[rx_dropped]
自我. show(NIC,DICT(tx_bytes ) )-tx_B2,DICT (tx _ p2,DICT))tx _丢弃
tx_b2,tx_p2,tx_d2=dict[tx_bytes],dict[tx_packets],dict[tx_dropped]
否则如果数==3:
自我. show(NIC,DICT(rx_bytes ) )-rx_B3,DICT (rx _ packets )-rx_P3,DICT)rx _丢弃
rx_b3,rx_p3,rx_d3=dict[rx_bytes],dict[rx_packets],dict[rx_dropped]
自我. show(网卡,字典(发送字节))-发送B3,字典(德克萨斯P3,字典))tx_dropped
tx_b3,tx_p3,tx_d3=dict[tx_bytes],dict[tx_packets],dict[tx_dropped]
否则:
打印对不起,nic argv大于麦克斯尼克。
是sys.exit(0)
rx_b0=rx_b1=rx_b2=rx_b3=0
rx_p0=rx_p1=rx_p2=rx_p3=0
rx_d0=rx_d1=rx_d2=rx_d3=0
tx_b0=tx_b1=tx_b2=tx_b3=0
tx_p0=tx_p1=tx_p2=tx_p3=0
tx_d0=tx_d1=tx_d2=tx_d3=0
if __name__==__main__ :
状态=状态()
而1:
数字=0
打印# * status.commlen
对于sys.argv[1:]中的网卡:
# t=线程。线程(目标=状态。进程(网络接口卡,编号))
#t.start())
satus.process(NIC,number))。
number=(number1) % status.maxnic
时间.睡眠(状态。新鲜时间).