linux系统使用python监测网络接口获取网络的输入输出
net.py获取网络接口的输入和输出
#!/usr/bin/envPython
importtime
importsys
iflen(sys.argv)>1:
INTERFACE=sys.argv[1]
else:
INTERFACE="eth0"
STATS=[]
print"Interface:",INTERFACE
def rx():
ifstat=open("/proc/net/dev").readlines()
forinterfacein ifstat:
ifINTERFACEininterface:
stat=float(interface.split()[1])
STATS[0:]=[stat]
def tx():
ifstat=open("/proc/net/dev").readlines()
forinterfacein ifstat:
ifINTERFACEininterface:
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)
printRX_RATE,"MB ",TX_RATE,"MB"
简单说明一下清单4:清单4读取/proc/net/dev中的信息,Python中文件操作可以通过open函数,这的确很像C语言中的fopen。通过open函数获取一个fileobject,然后调用read(),write()等方法对文件进行读写操作。另外Python将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法:read()、readline()和readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。.read()每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而.read()生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。.readline()和.readlines()之间的差异是后者一次读取整个文件,象.read()一样。.readlines()自动将文件内容分析成一个行的列表,该列表可以由Python的for...in...结构进行处理。另一方面,.readline()每次只读取一行,通常比.readlines()慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用.readline()。最后清单4打印出网络接口的输入和输出情况。
可以使用Python命令运行脚本net.py结果见图4
相关文章
- python-Python与PostgreSQL数据库-处理PostgreSQL查询结果
- Linux查看网络IO性能的方法(linux查看网络io)
- Linux系统下硬盘损坏修复指南(linux硬盘损坏)
- Linux常用命令全攻略(linux最常用命令大全)
- Linux网络监控:高效提升系统安全(linux网络监控软件)
- Linux检测网络的实用方法(linux检测网络)
- 拥抱Linux:探索支持Linux软件的世界(支持linux的软件)
- Linux的分支:探寻开源世界的新旅程(linux的分支)
- 网络配置Linux下无线网络配置实践指南(基于linux的无线)
- Linux无人值守安装:轻松解决痛苦(linux无人值守安装)
- Linux反向代理:实现安全可靠的网络访问(linux反向代理)
- Linux下处理字符串的简便方式(linux处理字符串)
- Linux批量重命名操作指南(批量重命名linux)
- 简单易行:Linux 下批量重命名(批量重命名linux)
- 点主机网络架构Linux节点主机:构建网络智慧基础(linux节)
- Linux服务器端编程——开启新世界的大门(linux服务器端编程)
- 系统跟踪Linux系统在网络中的行踪(跟踪网络linux)
- Linux系统如何精确同步网络时间(linux网络时间同步)
- Linux虚拟端口映射:快速高效地实现端口转发(linux虚拟端口映射)
- ARM Linux: 驱动工控系统发展(arm linux 工控)
- Linux日历服务器:实现高效日程管理的利器(linux日历服务器)
- Linux下载之旅:快速搭建你的系统软件库(linux下软件下载)