python监控网卡流量并使用graphite绘图的示例


Posted in Python onApril 27, 2014
#!/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 message\n"
    print '-' * 80
    print message
    sock.sendall(message)
    time.sleep(delay)
Python 相关文章推荐
Python实现针对给定单链表删除指定节点的方法
Apr 12 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
python处理multipart/form-data的请求方法
Dec 26 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
Dec 28 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
Python处理PDF与CDF实例
Feb 26 Python
Python如何获取文件指定行的内容
May 27 Python
利用python下载scihub成文献为PDF操作
Jul 09 Python
面向新手解析python Beautiful Soup基本用法
Jul 11 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
python抓取网页图片示例(python爬虫)
Apr 27 #Python
python实现sublime3的less编译插件示例
Apr 27 #Python
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
Apr 26 #Python
Python设计模式之单例模式实例
Apr 26 #Python
Python设计模式之观察者模式实例
Apr 26 #Python
Python设计模式之代理模式实例
Apr 26 #Python
python中的列表推导浅析
Apr 26 #Python
You might like
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
在项目中寻找代码的坏命名
2012/07/14 PHP
php实现上传图片文件代码
2015/07/19 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
input 高级限制级用法
2009/03/26 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python、Javascript中的闭包比较
2015/02/04 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
对python的文件内注释 help注释方法
2018/05/23 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
会计电算化专业个人的自我评价
2013/11/24 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
教师节标语大全
2014/10/07 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技