手机
当前位置:查字典教程网 >脚本专栏 >python >python监控网卡流量并使用graphite绘图的示例
python监控网卡流量并使用graphite绘图的示例
摘要:复制代码代码如下:#!/usr/bin/envpythonimportsys,timefromsocketimportsocketdefre...

复制代码 代码如下:

#!/usr/bin/env python

import sys,time

from socket import socket

def read_interface(in_file):

with file(in_file) as f:

return f.readlines()[2:]

def set_interface(inter_msg):

dic={}

for i in xrange(len(inter_msg)):

dic[inter_msg[i].split(":")[0].strip()]={"in":inter_msg[i].split(":")[1].strip().split()[0],"out":inter_msg[i].split(":")[1].strip().split()[8]}

return dic

CARBON_SERVER = '127.0.0.1'

CARBON_PORT = 2003

delay = 3

sock = socket()

try:

sock.connect( (CARBON_SERVER,CARBON_PORT) )

except:

print "Couldn't connect to %(server)s on port %(port)d, is carbon-agent.py running?" % { 'server':CARBON_SERVER, 'port':CARBON_PORT }

sys.exit(1)

while True:

now = int( time.time() )

lines=[]

int1=read_interface("/proc/net/dev")

inter_dic1=set_interface(int1)

time.sleep(1)

int2=read_interface("/proc/net/dev")

inter_dic2=set_interface(int2)

print int(inter_dic2[inter_dic2.keys()[1]]["in"]),int(inter_dic1[inter_dic1.keys()[1]]["in"])

for i in xrange(len(inter_dic1.keys())):

lines.append("interface.%s_in %s %d" % (inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]]["in"])-int(inter_dic1[inter_dic1.keys()[i]]["in"]),now))

lines.append("interface.%s_out %s %d" % (inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]]["out"])-int(inter_dic1[inter_dic1.keys()[i]]["out"]),now))

message = 'n'.join(lines) + 'n'

print "sending messagen"

print '-' * 80

print message

sock.sendall(message)

time.sleep(delay)

【python监控网卡流量并使用graphite绘图的示例】相关文章:

python单线程实现多个定时器示例

python使用百度翻译进行中翻英示例

python实现倒计时的示例

python的三目运算符和not in运算符使用示例

python实现博客文章爬虫示例

python批量下载图片的三种方法

python创建和使用字典实例详解

Python pass 语句使用示例

python使用ctypes模块调用windowsapi获取系统版本示例

python线程锁(thread)学习示例

精品推荐
分类导航