Python_实时监控网卡流量

#-*- coding:utf-8 -*-
#!/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])    若水网友修改过 ,
                        stat = float(interface.split(":")[1].split()[0])
                        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]
 
if  __name__ == '__main__':
                print 'In Out'
                rx()
                tx()
 
                while True:
                        try:
                            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'
                        except KeyboardInterrupt:
                                print 'pyifstat exited'
                                break
 

你可能感兴趣的:(监控,流量)