跳转至

10. 获取网络接口使用情况脚本

1. 脚本内容

vim net.py
#!/usr/bin/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')

2. 测试

python net.py
root@4c16g:/service/python# python net.py
Interface: eth0
In        Out
0.006 MB         0.006 MB
0.003 MB         0.004 MB
0.013 MB         0.013 MB
0.005 MB         0.01 MB
0.004 MB         0.004 MB
0.002 MB         0.003 MB
0.01 MB         0.009 MB
0.001 MB         0.002 MB
0.012 MB         0.01 MB
0.008 MB         0.003 MB
0.004 MB         0.005 MB
0.001 MB         0.003 MB
0.005 MB         0.008 MB
0.003 MB         0.008 MB
0.003 MB         0.003 MB
0.001 MB         0.002 MB
0.009 MB         0.008 MB
...

最后更新: 2022-02-18 08:36:36