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计算最大优先级队列实例
Dec 18 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
python3爬取淘宝信息代码分析
Feb 10 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
关于Keras模型可视化教程及关键问题的解决
Jan 24 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
python将unicode和str互相转化的实现
May 11 Python
Python requests上传文件实现步骤
Sep 15 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 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
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
js实现一键复制功能
2017/03/16 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
Python读写Excel文件方法介绍
2014/11/22 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
python动态参数用法实例分析
2015/05/25 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
python负载均衡的简单实现方法
2018/02/04 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
python通过http下载文件的方法详解
2019/07/26 Python
python matplotlib拟合直线的实现
2019/11/19 Python
用python制作个视频下载器
2021/02/01 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
Oracle的内存结构(Memory structures)
2015/06/10 面试题
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
禁止酒驾标语
2014/06/25 职场文书
行政前台岗位职责
2015/04/16 职场文书
python实现进度条的多种实现
2021/04/29 Python
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技