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列表操作实例
Jan 14 Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
用Python编写web API的教程
Apr 30 Python
Python文件去除注释的方法
May 25 Python
Python多层装饰器用法实例分析
Feb 09 Python
用Eclipse写python程序
Feb 10 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
详解Python用户登录接口的方法
Apr 17 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
Django --Xadmin 判断登录者身份实例
Jul 03 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
对javascript和select部件的结合运用
2006/10/09 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
php建立Ftp连接的方法
2015/03/07 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
Python3.2中Print函数用法实例详解
2015/05/19 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
python3.4实现邮件发送功能
2018/05/28 Python
python实现AES加密和解密
2019/03/27 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
如何通过命令行进入python
2020/07/06 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
培训讲师岗位职责
2014/04/13 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis