import subprocess#-*-coding:utf-8-*-#监控网卡流量def monitor_net(ethernet_name): cmd = "cat /proc/net/dev | grep %s" % ethernet_name p=subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True) data = p.communicate()[0].split(":")[1] receive_byte = data.split()[0] receive_page=data.split()[1] transmit_byte=data.split()[9] transmit_page=data.split()[10] print("网卡名称 接受的数据 包的个数 发送的数据 发送的包个数 ") print(ethernet_name+"\t"+receive_byte+"\t\t"+receive_page+"\t\t"+transmit_byte+"\t"+transmit_page)#监控def get_ethernet(): cmd = "cat /proc/net/dev"; p=subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True) data = p.communicate()[0].split("\n")[:-1][1:] del data[0] for i in data: ethernet_name=i.split(":")[0] monitor_net(ethernet_name)if __name__ == "__main__": get_ethernet()
执行
[guest@xiaopan monitor]$ python monitor_net.py网卡名称 接受的数据 包的个数 发送的数据 发送的包个数 eno1 1233664057 12857173 9258618 0网卡名称 接受的数据 包的个数 发送的数据 发送的包个数 eno2 0 0 0 0网卡名称 接受的数据 包的个数 发送的数据 发送的包个数 eno3 0 0 0 0网卡名称 接受的数据 包的个数 发送的数据 发送的包个数 eno4 0 0 0 0网卡名称 接受的数据 包的个数 发送的数据 发送的包个数 bond0 0 0 0 0网卡名称 接受的数据 包的个数 发送的数据 发送的包个数 team0 799365427 11620233 9246756 0网卡名称 接受的数据 包的个数 发送的数据 发送的包个数 lo 2675728851 19346463 19346463 0网卡名称 接受的数据 包的个数 发送的数据 发送的包个数virbr0-nic 0 0 0 0网卡名称 接受的数据 包的个数 发送的数据 发送的包个数virbr0 0 0