宝塔面板流量统计 排除本地回环

本文在宝塔面板 7.1.1 上测试通过。

宝塔面板的流量统计调用 net_io_counters(),把所有网卡的流量都统计在内。
只要把总流量减去本地回环流量即可。

task.py

/www/server/panel/task.py 第 202 行

networkIo = net_io_counters()[:4]

替换为

如果是单网卡:

networkIo = net_io_counters(pernic=True).get('网卡名')[:4]

如果是多网卡:

networkIo_lo = (0, 0, 0, 0)
if "lo" in net_io_counters(pernic=True).keys():
    networkIo_lo = net_io_counters(pernic=True).get('lo')[:4]
networkIo = net_io_counters()[:4]
networkIo = tuple([networkIo[i]-networkIo_lo[i] for i in range(0,len(networkIo))])

system.py

/www/server/panel/class/system.py 第 447 行

networkIo = psutil.net_io_counters()[:4]

替换为

如果是单网卡:

networkIo = psutil.net_io_counters(pernic=True).get('网卡名')[:4]

如果是多网卡:

networkIo_lo = (0, 0, 0, 0)
if "lo" in psutil.net_io_counters(pernic=True).keys():
    networkIo_lo = psutil.net_io_counters(pernic=True).get('lo')[:4]
networkIo = psutil.net_io_counters()[:4]
networkIo = tuple([networkIo[i]-networkIo_lo[i] for i in range(0,len(networkIo))])

发现下面还有一个 GetNetWorkOld(self)
490 多行,if pnetInfo[0] == 'io': continue 后面加上 if pnetInfo[0] == 'lo': continue

重启面板

打开终端

bt
1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章