当前位置: 首页 > 编程日记 > 正文

python采集bandwidth信息

旧博文,搬到 csdn
原文:http://rebootcat.com/2018/05/21/analyze_bandwidth/

python脚本采集bandwidth

经常要做一些 linux 系统上的性能分析或者采集 cpu/mem/bandwidth 上报到监控系统。

分享一个我平常常用到的 bandwidth 采集脚本,原理是分析 /proc/net/dev 文件, 脚本如下:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#脚本探测网卡流入带宽,循环输出import os
import time
import pdbfilename = './bandwidth.log''''
[root@~]$ cat /proc/net/dev
Inter-|   Receive                                                |  Transmitface |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressedlo: 1144779885672 14057281982    0    0    0     0          0         0 1144779885672 14057281982    0    0    0     0       0          0eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0eth1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0eth2: 26686495240 203608963    0    0    0     0          0         1 78529414436 193724479    0    0    0     0       0          0eth3: 10038847365 82467612    0    0    0     0          0         0 26209215795 64571217    0    0    0     0       0          0bond0: 36725342605 286076575    0    0    0     0          0         1 104738630231 258295696    0    0    0     0       0          0
'''def get_rx(interface = 'eth0'):rsbytes = []cmd = 'cat /proc/net/dev'r = os.popen(cmd).readlines()if len(r) < 4:print "error: can't find eth interface"return rsbytesinterface_dict = {}for i in xrange(2,len(r),1): #从 lo 开始interface_name = r[i].split()[0].split(':')[0]interface_dict[interface_name] = iif interface in interface_dict:position = interface_dict.get(interface)recvbytes = r[position].split()[1]sendbytes = r[position].split()[9]rsbytes.append(int(recvbytes))rsbytes.append(int(sendbytes))return rsbytesdef iftop_interface(interface = 'eth0'):begin = int(time.time())beginrs = get_rx(interface)if not beginrs:print 'error: can not find interface %s' % interfacereturnwhile True:time.sleep(2)endrs = get_rx(interface)end = int(time.time())rxrate = float((endrs[0] - beginrs[0])) / (end - begin)  * 8sxrate = float((endrs[1] - beginrs[1])) / (end - begin)  * 8tl = time.localtime(end)date = time.strftime('%m-%d %H:%M:%S', tl)cout = "%s  [recv(rate) = %s Mbps] [send(rate) = %s Mbps] \n" % (date,rxrate / 1000000,sxrate / 1000000)fout = open(filename,'a')fout.write(cout)fout.close()print cout#重新赋值,进入再次循环begin,beginrs = end,endrsif __name__ == "__main__":iftop_interface('ens33')    

默认的网卡名字是 eth0,有些机器可能会不一样,只需要修改成你自己机器的网卡名称就行。

脚本可以直接在 我的github 进行下载。

其他

欢迎关注下我的其他脚本,平常可能会用到的一些脚本,整理了一下。

https://github.com/smaugx/dailytools

Blog:

  • rebootcat.com

  • email: linuxcode2niki@gmail.com

2018-05-21 于杭州
By 史矛革

相关文章:

零基础搭建个性化精准营销 AI 应用,这次手把手教你!

百万学AI系列AI 应用开发大师课已经直播两期了&#xff0c;在前两期的内容中&#xff0c;大家在入门级任务《猫狗分类器》中上手 TensorFlow 开发&#xff0c;通过离线 SDK 在 Android 手机中完成人脸识别应用的部署。在这两个任务中&#xff0c;能成功安装开发环境&#xff0c…

C++数据类型简析

C语言的基本数据类型有如下四种&#xff1a; 整型&#xff0c;说明符为int&#xff1b;字符型&#xff0c;说明符为char&#xff1b;浮点型&#xff08;又称实型&#xff09;&#xff0c;说明符为float&#xff08;单精度&#xff09;&#xff0c;double&#xff08;双精度&…

浅谈几种区块链网络攻击以及防御方案之51#37攻击

旧博文&#xff0c;搬到 csdn 原文&#xff1a;http://rebootcat.com/2020/04/11/network_attack_of_blockchain_51_attack/ 写在前面的话 自比特币诞生到现在&#xff0c;比特币&#xff08;网络&#xff09;经历过大大小小非常多次的攻击&#xff0c;尤其在比特币诞生之初的…

全球Python调查报告:Python 2正在消亡,PyCharm比VS Code更受欢迎

作者 | 唐小引题图 | 自东方 IC出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;一年一度的 Python 开发者调查报告终于发布了。该报告由 Python 软件基金会和 JetBrains 联合发起&#xff0c;已经持续三年&#xff0c;并且参与调查的开发者人数正在逐年上…

中兴V880使用手记之五——刷入recovery

Recovery是安卓系统的一个特殊工作模式&#xff0c;也就是一个刷机的工程界面&#xff0c;给安卓手机刷入Recovery相当于给系统安装了一个dos界面&#xff0c;可以在未开机的状态下&#xff0c;实现系统更新、还原出厂设置、清除手机缓存等。通过一些第三方工具&#xff0c;可以…

windows 系统常用操作

1、所有端口使用情况 netstat -ano 2、查询xxxx端口pid netstat -aon|findstr "xxxx" 3、根据端口Pid查详情 tasklist|findstr "pkd" 4、根据进程pid kill 进程 taskkill /pid pid -f 转载于:https://www.cnblogs.com/vitre/p/5549344.html

浅谈几种区块链网络攻击以及防御方案之日蚀攻击

旧博文&#xff0c;搬到 csdn 原文&#xff1a;http://rebootcat.com/2020/04/12/network_attack_of_blockchain_eclipse_attack/ 写在前面的话 自比特币诞生到现在&#xff0c;比特币&#xff08;网络&#xff09;经历过大大小小非常多次的攻击&#xff0c;尤其在比特币诞生之…

微服务的理想与现实

来源 | 京东智联云开发者随着云原生微服务的日益火热&#xff0c;很多人都开始对微服务的相关知识内容感兴趣。本篇内容&#xff0c;旨在扫盲&#xff08;意思是小白可入&#xff09;&#xff0c;希望能对大家有帮助。如有问题&#xff0c;欢迎大家一起讨论&#xff0c;共同学习…

感恩心成就了车建新和红星美凯龙

前几天参加了红星美凯龙成立25周年庆典活动&#xff0c;庆典活动非常的隆重&#xff0c;庆典之前红地毯上星光熠熠&#xff0c;红星美凯龙掌舵人车建新等多位高管、品牌代言人大小S、刘谦、古巨基、萧亚轩、胡一虎等演艺群星、马未都、马艳丽、包小柏、王潮歌、殷智贤等不同领域…

第二阶段团队项目冲刺站立会议(九)

昨天做了什么&#xff1a; 已经简单实现我的后续显示问题。 今天准备做什么&#xff1a; 美观上的东西来不及做了估计&#xff0c;我要整合到项目的实现上去。 遇到的问题&#xff1a; 项目问题大体上和竞赛一致&#xff0c;但也有不一样的地方。转载于:https://www.cnblogs.co…

浅谈几种区块链网络攻击以及防御方案之女巫攻击

旧博文&#xff0c;搬到 csdn 原文&#xff1a;http://rebootcat.com/2020/04/13/network_attack_of_blockchain_sybil_attack/ 写在前面的话 自比特币诞生到现在&#xff0c;比特币&#xff08;网络&#xff09;经历过大大小小非常多次的攻击&#xff0c;尤其在比特币诞生之初…

INODE上网IP地址刷新超时处理

IP地址刷新超时2011-06-07 09:19:08 连接网络...2011-06-07 09:19:08 开始进行身份验证... [wangliyafaguibu]2011-06-07 09:19:09 正在上传用户密码...2011-06-07 09:19:10 您的身份验证成功2011-06-07 09:19:10 自动获取IP地址...2011-06-07 09:19:11 IP地址刷新超时2011-06-…

让大规模深度学习训练线性加速、性能无损,基于BMUF的Adam优化器并行化实践...

导语&#xff1a;深度学习领域经典的 Adam 算法在大规模并行训练的情况下会导致模型性能损失。为了解决这一问题&#xff0c;微软亚洲研究院采用 BMUF 框架对 Adam 算法进行了并行化&#xff0c;并在微软大规模 OCR 和语音产品数据集上进行了测试&#xff0c;使其在并行训练中几…

Spring AOP AspectJ Pointcut Expressions With Examples--转

原文地址&#xff1a;http://howtodoinjava.com/spring/spring-aop/writing-spring-aop-aspectj-pointcut-expressions-with-examples/ 1) Matching Method Signature Patterns The most typical pointcut expressions are used to match a number of methods by their signatu…

限免!百名AI大咖,20大技术和行业论坛,不可错过的开发者嘉年华

根据《2020科技趋势报告》的预测&#xff0c;AI将引发第三次计算浪潮&#xff0c;也是重塑世界最大的动因之一。而在全球人工智能技术的赛道上&#xff0c;中国无疑是领先者&#xff0c;到2030中国将成为全球主要的人工智能创新中心。在这样的大环境下&#xff0c;如何抓住机遇…

浅谈几种区块链网络攻击以及防御方案之拒绝服务攻击

旧博文&#xff0c;搬到 csdn 原文&#xff1a;http://rebootcat.com/2020/04/14/network_attack_of_blockchain_ddos_attack/ 写在前面的话 自比特币诞生到现在&#xff0c;比特币&#xff08;网络&#xff09;经历过大大小小非常多次的攻击&#xff0c;尤其在比特币诞生之初…

C++中#include的工作原理

大多数人可能对“#include”比较熟悉&#xff0c;因为我们写C/C程序的时候都会写的字符串之一&#xff0c;但是它是具体怎么工作的&#xff1f;或者它的原理是什么呢&#xff1f; 可能不太熟悉&#xff0c;也有可能没有去关心过。我们只关心程序能否正确运行&#xff0c;或者程…

浅谈几种区块链网络攻击以及防御方案之其它网络攻击

旧博文&#xff0c;搬到 csdn 原文&#xff1a;http://rebootcat.com/2020/04/16/network_attack_of_blockchain_other_attack/ 写在前面的话 自比特币诞生到现在&#xff0c;比特币&#xff08;网络&#xff09;经历过大大小小非常多次的攻击&#xff0c;尤其在比特币诞生之初…

基于深度学习和传统算法的人体姿态估计,技术细节都讲清楚了

作者 | 站长 pursueYfuture来源 | AI专栏&#xff08;ID: pursue-Y-future&#xff09;计算机视觉的一大研究热点是人体姿态估计&#xff0c;还有很多问题急需解决&#xff0c;比如遮挡&#xff0c;交互等等。在最近的CVPR2020里边也有很多这方面的工作。本文站长主要是想谈谈基…

怎么让百度快速重新收录

每天更新网站和做外链让百度重新收录的快速方法很多人都比较头疼让百度如何重新来收录你站点&#xff0c;这里为大家介绍一下我的经验;大家都知道做网络推广&#xff0c;特别是企业站推广&#xff0c;如果能在相关的关键字在搜索引擎里有个好的名次&#xff0c;肯定能给企业增长…

HQL语句大全

Hibernate配备了一种非常强大的查询语言&#xff0c;这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑&#xff0c;HQL是非常有意识的被设计为完全面向对象的查询&#xff0c;它可以理解如继承、多态 和关联之类的概念。Hibernate配备了一种非常强大的查询语言&#…

自动创建阿里云抢占式实例

旧博文&#xff0c;搬到 csdn 原文&#xff1a;http://rebootcat.com/2020/08/24/auto_run_aliyun_spot/ aliyun_spot 自动创建阿里云抢占式实例。 支持一下作者&#xff0c;购买阿里云 背景 阿里云抢占式实例应该属于阿里云的一种闲置资源利用&#xff0c;性价比非常高&am…

What?! Python一行代码,能玩这么多童年的游戏?

来源 | 早起 Python责编 | Carol封图 | CSDN 下载自视觉中国儿童节就要来了&#xff0c;虽然秃头程序员没有头发&#xff0c;但是童心还是一直都在的&#xff0c;今天就分享一个私藏的GitHub项目——free-python-games&#xff0c;一行代码就能进入使用Python开发的小游戏快乐…

McAfee可能要收购NitroSecurity?

近日&#xff0c;根据国外媒体报道和业界人士的坊间传闻&#xff0c;有传闻指McAfee可能将在近期收购SIEM厂商NitroSecurity。最近&#xff0c;NitroSecurity正在准备IPO&#xff0c;去年年收入约4000万美元&#xff0c;在Gartner的MQ中位于Leader阵营。 NitroSecurity的SIEM技…

进程间通信IPC之--共享内存

每个进程各自有不同的用户地址空间&#xff0c;任何一个进 程的全局变量在另一个进程中都看不到&#xff0c;所以进程之间要交换数据必须通过内核&#xff0c;在内核中开辟一块缓冲 区&#xff0c;进程1把数据从用户空间拷到内核缓冲区&#xff0c;进程2再从内核缓冲区把数据读…

Scons构建C++项目

旧博文&#xff0c;搬到 csdn 原文&#xff1a;http://rebootcat.com/2020/08/30/scons/ 前言 我是一个 linux c 开发者&#xff0c;但是一直对 Makefile 的语法很是头痛&#xff0c;每次都记不住&#xff0c;所以每次写 Makefile 都很痛苦&#xff0c;Makefile 里需要你自己编…

2020 AI产业图谱启动,勾勒中国AI技术与行业生态

《2020年国务院政府工作报告》提出&#xff0c;重点支持「两新一重」建设。其中「两新一重」中的第一个「新」&#xff0c;就是新基建&#xff0c;而人工智能是新基建的重要组成部分。新基建首次被纳入政府工作报告后&#xff0c;各大科技厂商纷纷押注&#xff0c;重金投向「新…

Windows Phone 7 SDK 7.1 Beta2 发布

早上看到消息&#xff0c;有Marketplace账号的筒子们注意了&#xff0c;可以去下载芒果的ROM了&#xff0c;一个开发者账号只能更新一个WP7&#xff0c;以下是App hub上的消息&#xff1a;来自http://create.msdn.com/en-US/news/Mango_Beta。关于开发工具的更新&#xff0c;可…

javascript基础语法——表达式

前面的话 一般地&#xff0c;关于javascript基础语法&#xff0c;人们听得比较多的术语是操作符和语句。但是&#xff0c;其实还有一个术语经常使用&#xff0c;却很少被提到&#xff0c;这就是javascript表达式(expression)。本文将详细介绍javascript表达式&#xff0c;表达式…

Hexo Next 博客添加相册瀑布流

原文&#xff1a;https://rebootcat.com/2020/09/19/nextphotowall/ 前言 一直没有时间来整理下博客搭建的一些事情&#xff0c;现在补上一篇&#xff0c;给 Hexo Next 博客添加一个相册功能&#xff0c;使用瀑布流的方式。 原理说明 使用 github 作为仓库存储图片文件&…