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中用于处理字符串的center()方法
May 18 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
解决nohup执行python程序log文件写入不及时的问题
Jan 14 Python
详解Python装饰器
Mar 25 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
Jul 28 Python
python周期任务调度工具Schedule使用详解
Nov 23 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
PHP 命名空间实例说明
2011/01/27 PHP
php实现通过ftp上传文件
2015/06/19 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
药物学专业学生的自我评价
2013/10/27 职场文书
大学生怎样进行自我评价
2013/12/07 职场文书
模范教师事迹材料
2014/02/10 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
先进基层党组织材料
2014/12/25 职场文书
紧急通知
2015/04/17 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
家访教师心得体会
2016/01/23 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python