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 3支持mysqldb的解决方法
Feb 14 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
Aug 07 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
简单了解python filter、map、reduce的区别
Jan 14 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 Python
python中pickle模块浅析
Dec 29 Python
python批量提取图片信息并保存的实现
Feb 05 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 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令牌 Token改进版
2008/07/18 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
小程序云开发实战小结
2018/10/25 Javascript
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
python实现RSA加密(解密)算法
2016/02/17 Python
python用户评论标签匹配的解决方法
2018/05/31 Python
python函数不定长参数使用方法解析
2019/12/14 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
市场营销管理制度
2014/01/29 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
给学校的建议书
2014/03/12 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle