• 007-python 获取网卡实时流量(转)


    使用python监控系统时,获取网卡流量是比较难搞的,网上找了一个比较好的脚本,分享一下!

    psutil模块是一个跨平台的获取进程和系统应用情况(CPU,内存,磁盘,网络,传感器)的库。该模块用于系统监控、限制进程资源和运行进程的管理等方面

    安装模块psutil

    pip install psutil

    亲测Linux和Windows使用正常

    net_traffic.py

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    try:
        import psutil
    except ImportError:
        print('Error: psutil module not found!')
        exit()
    
    
    def get_key():
    
        key_info = psutil.net_io_counters(pernic=True).keys()
    
        recv = {}
        sent = {}
    
        for key in key_info:
            recv.setdefault(key, psutil.net_io_counters(pernic=True).get(key).bytes_recv)
            sent.setdefault(key, psutil.net_io_counters(pernic=True).get(key).bytes_sent)
    
        return key_info, recv, sent
    
    
    def get_rate(func):
    
        import time
    
        key_info, old_recv, old_sent = func()
    
        time.sleep(1)
    
        key_info, now_recv, now_sent = func()
    
        net_in = {}
        net_out = {}
    
        for key in key_info:
            # float('%.2f' % a)
            net_in.setdefault(key, float('%.2f' %((now_recv.get(key) - old_recv.get(key)) / 1024)))
            net_out.setdefault(key, float('%.2f' %((now_sent.get(key) - old_sent.get(key)) / 1024)))
    
        return key_info, net_in, net_out
    
    
    while 1:
        try:
             key_info, net_in, net_out = get_rate(get_key)
    
             for key in key_info:
                 # lo 是linux的本机回环网卡,以太网是我win10系统的网卡名
                 if key != 'lo' or key == '以太网':
                    print('%s
    Input:	 %-5sKB/s
    Output:	 %-5sKB/s
    ' % (key, net_in.get(key), net_out.get(key)))
        except KeyboardInterrupt:
            exit()

    注意:以太网是我win10网卡名,可自行更改

    数字显示,改成保留小数点2位,使用float

    运行脚本,使用迅雷下载一步高清电影,效果如下:

    动画1.gif

    将代码拷贝到Linux服务器,运行一下。

    下载一个软件包,效果如下:

    blob.png

  • 相关阅读:
    http://blog.csdn.net/steveguoshao/article/details/38414145
    http://www.tuicool.com/articles/EjMJNz
    http://jingyan.baidu.com/article/7f41ecec1b7a2e593d095ce6.html
    Linux 查看当前时间和修改系统时间
    http://m.blog.csdn.net/article/details?id=49132747
    http://www.cnblogs.com/nick-huang/p/4848843.html
    javaScript事件(一)事件流
    jQuery选择器
    超链接a的target属性
    html基础总结版
  • 原文地址:https://www.cnblogs.com/zhidian2020/p/15331057.html
Copyright © 2020-2023  润新知