linux系统使用python监测网络接口获取网络的输入输出


Posted in Python onJanuary 15, 2014

net.py 获取网络接口的输入和输出

#!/usr/bin/env Python
import time
import sys
if len(sys.argv) > 1:
 INTERFACE = sys.argv[1]
else:
 INTERFACE = 'eth0'
STATS = []
print 'Interface:',INTERFACE
def rx():
 ifstat = open('/proc/net/dev').readlines()
 for interface in  ifstat:
  if INTERFACE in interface:
   stat = float(interface.split()[1])
   STATS[0:] = [stat]
def tx():
 ifstat = open('/proc/net/dev').readlines()
 for interface in  ifstat:
  if INTERFACE in interface:
   stat = float(interface.split()[9])
   STATS[1:] = [stat]
print 'In   Out'
rx()
tx()
while True:
 time.sleep(1)
 rxstat_o = list(STATS)
 rx()
 tx()
 RX = float(STATS[0])
 RX_O = rxstat_o[0]
 TX = float(STATS[1])
 TX_O = rxstat_o[1]
 RX_RATE = round((RX - RX_O)/1024/1024,3)
 TX_RATE = round((TX - TX_O)/1024/1024,3)
 print RX_RATE ,'MB  ',TX_RATE ,'MB'

简单说明一下清单 4:清单 4 读取/proc/net/dev 中的信息,Python 中文件操作可以通过 open 函数,这的确很像 C 语言中的 fopen。通过 open 函数获取一个 file object,然后调用 read(),write()等方法对文件进行读写操作。另外 Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: read()、readline() 和 readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。最后清单 4 打印出网络接口的输入和输出情况。
可以使用 Python 命令运行脚本 net.py 结果见图 4

linux系统使用python监测网络接口获取网络的输入输出

Python 相关文章推荐
Python简单定义与使用字典dict的方法示例
Jul 25 Python
用matplotlib画等高线图详解
Dec 14 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
Python中判断输入是否为数字的实现代码
May 26 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
Python中文件的写入读取以及附加文字方法
Jan 23 Python
django 信号调度机制详解
Jul 19 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 Python
linux系统使用python监控apache服务器进程脚本分享
Jan 15 #Python
Python获取当前时间的方法
Jan 14 #Python
Python生成随机数的方法
Jan 14 #Python
python模拟登陆Tom邮箱示例分享
Jan 13 #Python
python调用cmd命令行制作刷博器
Jan 13 #Python
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 #Python
python实现异步回调机制代码分享
Jan 10 #Python
You might like
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
微信小程序实现授权登录
2019/05/15 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
python web框架 django wsgi原理解析
2019/08/20 Python
Django获取应用下的所有models的例子
2019/08/30 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
python绘制高斯曲线
2021/02/19 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
医学生自荐信范文
2013/12/03 职场文书
自荐信封面
2013/12/04 职场文书
全陪导游欢迎词
2014/01/17 职场文书
五年级语文教学反思
2014/01/30 职场文书
遥感技术与仪器求职信
2014/02/22 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
详解MySQL中的pid与socket
2021/06/15 MySQL
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js
python画条形图的具体代码
2022/04/20 Python