python实时统计双网卡流量

chhandsome 2011-10-20

#!/usr/bin/python
import time

def readfile():
    fd = open("/proc/net/dev", "r")
    for line in fd.readlines():
        if line.find("eth0") > 0:
            field = line.split()
            recv = field[0].split(":")[1]
            send = field[8]
        if line.find("eth1") > 0:
            field = line.split()
            recv1 = field[0].split(":")[1]
            send1 = field[8]
    fd.close()
    return (float(recv), float(send),float(recv1),float(send1))


def count():
    (recv, send, recv1, send1) = readfile()
    while True:
        time.sleep(1)
        (new_recv, new_send,new_recv1, new_send1) = readfile()
        print "eth0: recv: %.3f MB, send %.3f MB" % ((new_recv -recv)/1024/1024, (new_send - send)/1024/1024)
        print "eth1: recv: %.3f MB, send %.3f MB" % ((new_recv1 -recv1)/1024/1024, (new_send1 - send1)/1024/1024)
        print ""
        (recv, send, recv1, send1) = (new_recv, new_send, new_recv1, new_send1)

count()

相关推荐