Python网速监控

Python网速监控脚本

功能: 统计网卡接收和发送的总流量,计算每秒的网速
代码如下:
#!/bin/env python36
import sys
import threading
import time


# 单位换算
def unit_conversion(byte):
    byte = int(byte)
    if byte > 1000:
        res = byte / 1024
        if res < 1000:
            res = float('%.2f' % res)
            return str(res) + 'k'
        elif res < 1000 * 1024:
            res = res / 1024
            res = float('%.2f' % res)
            return str(res) + 'm'
        else:
            res = res / (1024 * 1024)
            res = float('%.2f' % res)
            return str(res) + 'g'


def get_net_data(netdev):
    with open('/proc/net/dev', 'r') as f:
        for line in f:
            if line.find(netdev) >= 0:
                receive = line.split(':')[1].split()[0]
                transmit = line.split(':')[1].split()[8]
                return float(receive), float(transmit)


def speed_monitor(netdev):
    while True:
        receive_old, transmit_old = get_net_data(netdev)
        time.sleep(1)
        receive, transmit = get_net_data(netdev)
        print('recevice' + unit_conversion(receive - receive_old) + '/s')
        print('transmit' + unit_conversion(transmit - transmit_old) + '/s')


if __name__ == "__main__":
    if sys.argv[1] == "t":
        receive, transmit = get_net_data(sys.argv[2])
        print(unit_conversion(receive))
        print(unit_conversion(transmit))
    elif sys.argv[1] == "s":
        threading.Thread(target=speed_monitor,args=(sys.argv[2],)).start()
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值