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 相关文章推荐
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
python批量替换页眉页脚实例代码
Jan 22 Python
python 定时修改数据库的示例代码
Apr 08 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
python 异或加密字符串的实例
Oct 14 Python
linux查找当前python解释器的位置方法
Feb 20 Python
python实现简单加密解密机制
Mar 19 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
Tensorflow限制CPU个数实例
Feb 06 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
python 装饰器的基本使用
Jan 13 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 03 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从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Python Socket编程入门教程
2014/07/11 Python
linux下python抓屏实现方法
2015/05/22 Python
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
Java中实现多态的机制
2015/08/09 面试题
如何手工释放资源
2013/12/15 面试题
夜大毕业生自我评价分享
2013/11/10 职场文书
分公司经理岗位职责
2013/11/11 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书