zoukankan      html  css  js  c++  java
  • 网卡流量监控脚本 ( Python )

    #!/usr/bin/env python
    # coding: utf-8
    # author: Xiao Guaishou
    
    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:
            net_in.setdefault(key, (now_recv.get(key) - old_recv.get(key)) / 1024)
            net_out.setdefault(key, (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:
                 print('%s
    Input:	 %-5sKB/s
    Output:	 %-5sKB/s
    ' % (key, net_in.get(key), net_out.get(key)))
        except KeyboardInterrupt:
            exit()
    
    # End
  • 相关阅读:
    crontab使用
    python 学习 第一课
    php调用阿里大鱼 接口curl
    thinkphp 动态 级联
    nginx重启
    linux查看 文件夹大小
    mysql convert
    mysql 数据库导入 导出,解决 导入 错误问题
    .net 更新数据 ado.net parameter
    PHP的超全局变量$_SERVER
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/5630395.html
Copyright © 2011-2022 走看看