rxdhj,航班更改,添加了kddxgz,全局变量太弱。 什么时候变更为yield
#! /usr/bin/env python
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#nic_traffic.pl=nic_status.py
#HuiLi
#2015-07-07
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
导入系统
导入时间
import os
导入re
导入副本
#导入
类状态(object ) :
def __init__(self ) :
self.color={
' purple': ' 33[1; 35; 2m ',
' red': ' 33[1; 31; 2m ',
' green': ' 33[1; 32; 2m ',
' default': ' 33[0; 0m '
}
self.freshtime=1
self.maxnic=4
self.width=10
self.G=1024 * 1024 * 1024
self.M=1024 * 1024
self.K=1024
self.commlen=120
def__printf(self,string ) :
sys.stdout.write(string )
sys.stdout.flush (
def__purple(self,string ) :
return ' % s % s % s ' % (self.color [ ' purple ' ],string,self.color['default'] )
def__red(self,string ) :
return ' % s % s % s ' % (self.color [ ' red ' ],string,self.color['default'] ) )
def__green(self,string ) :
return ' % s % s % s ' % (self.color [ ' green ' ],string,self.color['default'] ) )
def_theme(self,front,end,num,bool ) :
num=self.__int2str(num )
if bool=='wrong':
self.__printf(|frontself.__red ) num (end (n ) ) ) ) ) ) ) ) ) ) 652
elif bool=='right':
self._ _ printf (|front self._ _ green (num ) end ) ) ) )。
else:
打印' color标志错误'
是sys.exit(0)
def_gettime(self ) :
now time=time.strftime (% y-% m-% d % h : % m 3360 % s ) )
返回通知时间
def__parser(self,nic ) :
data={}
pattern_nic='%s:' %nic
try:
NiCPF=open(/proc/net/dev ),' r ' ) )
except IOError,e:
是sys.exit(0)
for eachLine in nicpf:
eachLine=eachLine.strip (
info_NIC=re.search(pattern_NIC,eachLine ) ) ) ) ) ) ) ) )。
if info_nic is not None:
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 ) :
if num self.G:
num='%.hxsdbq(num*1.0/self.g ) )。
elif num self.M:
num='%.1fm'%(num*1.0/self.m ) )。
elif num self.K:
num='%.1fk'%(num*1.0/self.k ) )。
else:
num='%.1f ' %(num * 1.0 )
返回数值
def_show(self,nic,b,p,d,flag ) :
self.__printf(self.__gettime ()
self.__printf(self.__purple ) NIC.center (self.width ) )
self.__theme(flag'bps: ',' bits/s ',b,' right ' )
self.__theme(flag'packets: ',' pkts/s ',p,' right ' )。
self.__theme(flag'Dropped: )、' pkts/s '、d、' wrong ' () ) ) ) ) ) ) ) ) ) )。
efprocess(self,nic,number ) :
self.__count(NIC,number ) )。
def__count(self,nic,number ) :
global rx_b0、rx_b1、rx_b2、rx_b3、rx_p0、rx_p1、rx_p2、rx_p3、rx_d0、rx_d1、rx_d2,
global tx_b0、tx_b1、tx_b2、tx_b3、tx_p0、tx_p1、tx_p2、tx_p3、tx_d0、tx_d1、tx_d2,
dict=self.__parser(nic )
if number==0:
self._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']
self._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']
elif number==1:
self._show(NIC,DICT(rx_bytes ) )-rx_B1,DICT (rx _ packets )-rx_P1,dict ) rx_dropped
rx_b1,rx_p1,rx_d1=dict['rx_bytes']、dict['rx_packets']、dict['rx_dropped']
self._show(NIC,DICT(tx_bytes ) )-tx_B1,DICT (tx _ P1,dict ) ) tx_dropped
tx_b1,tx_p1,tx_d1=dict['tx_bytes'],dict['tx_packets'],dict['tx_dropped']
elif number==2:
self._show(NIC,DICT(rx_bytes ) )-rx_B2,DICT (rx _ packets )-rx_P2,dict ) rx_dropped
rx_b2,rx_p2,rx_d2=dict['rx_bytes']、dict['rx_packets']、dict['rx_dropped']
self._show(NIC,DICT(tx_bytes ) )-tx_B2,DICT (tx _ p2,dict ) ) tx_dropped
tx_b2,tx_p2,tx_d2=dict['tx_bytes'],dict['tx_packets'],dict['tx_dropped']
elif number==3:
self._show(NIC,DICT(rx_bytes ) )-rx_B3,DICT (rx _ packets )-rx_P3,dict ) rx_dropped
rx_b3,rx_p3,rx_d3=dict['rx_bytes']、dict['rx_packets']、dict['rx_dropped']
self._show(NIC,DICT(tx_bytes ) )-tx_B3,DICT (tx _ P3,dict ) ) tx_dropped
tx_b3,tx_p3,tx_d3=dict['tx_bytes'],dict['tx_packets'],dict['tx_dropped']
else:
打印' sorry,nic argv more than maxnic!'
是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__':
status=Status ()
while 1:
number=0
print '#' * status.commlen
for nic in sys.argv[1:]:
# t=threading.thread (target=status.process (NIC,number ) )
#t.start () )
satus.process(NIC,number ) )。
number=(number1) % status.maxnic
time.sleep(Status.Freshtime ) )。