本文在寶塔面板 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