设为首页 加入收藏

TOP

监控Linux流量Python版
2015-12-01 14:11:50 来源: 作者: 【 】 浏览:12
Tags:监控 Linux 流量 Python

Python版监控Linux流量,直接上代码,使用OptionParser来传入参数


#coding:utf-8
#-------------
#Author:Hu
#Data:20150520
#-------------


from __future__ import division
import re
import time
from optparse import OptionParser



def getbandwidth(eth='eth0',intevel=1):
? ? a=open('/proc/net/dev')
? ? data=a.read()
? ? patten=eth + '.*'
? ? if? not re.search(patten,data):
? ? ? ? print "The ETHname not have"
? ? ? ? exit(1)
? ? Rev_old=re.search(patten,data).group().replace(':',' ').split()[1]
? ? Send_old=re.search(patten,data).group().replace(':',' ').split()[9]
? ? a.close()


? ? while True:
? ? ? ? #print intevel
? ? ? ? time.sleep(int(intevel))
? ? ? ? a=open('/proc/net/dev')
? ? ? ? data=a.read()
? ? ? ? Rev=re.search(patten,data).group().replace(':',' ').split()[1]
? ? ? ? Send=re.search(patten,data).group().replace(':',' ').split()[9]
? ? ? ? diff_Rev=int(Rev)-int(Rev_old)
? ? ? ? diff_Sen=int(Send)-int(Send_old)
? ? ? ? diff_M=diff_Rev*8/1024/1024/int(intevel)
? ? ? ? diff_S=diff_Sen*8/1024/1024/int(intevel)
? ? ? ? print time.strftime("%Y%m%d %H:%M:%S") + '? The Recevie is? %6.2f Mbps(byte is %d)' % (diff_M,diff_Rev) + '? The Send is? %6.2f Mbps(byte is %d)' % (diff_S,diff_Sen)
? ? ? ? Rev_old=Rev
? ? ? ? Send_old=Send
? ? ? ? a.close()
if __name__=='__main__':
? ?
? ? import sys
? ? usage='''%prog [-i ethname] [-t interveltime]
? ? ? ? ? Example:%prog -i eth0 -t 1'''
? ? parser=OptionParser(usage=usage,version='2.0_20150602')


? ? parser.add_option('-i','--interface',dest='interface',default='eth0',help='Wann to interface')
? ? parser.add_option('-t','--time',dest='intevel',type='int',default='1',help='The intevel time')
? ? (options,args)=parser.parse_args()
? ? print "The interafce is %s and the intevel time is %d" % (options.interface,options.intevel)
? ? getbandwidth(options.interface,options.intevel)


使用方法:
'''%prog [-i ethname] [-t interveltime]
? ? ? ? ? Example:%prog -i eth0 -t 1'''
默认是eth0 ,时间间隔是1


下面关于Python的文章您也可能喜欢,不妨看看:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇监控Linux流量Shell版 下一篇C++中现成的hash函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: