网卡流量监控脚本 ( Python )

Posted 小怪兽的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网卡流量监控脚本 ( 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\nInput:\t %-5sKB/s\nOutput:\t %-5sKB/s\n % (key, net_in.get(key), net_out.get(key)))
    except KeyboardInterrupt:
        exit()

# End

以上是关于网卡流量监控脚本 ( Python )的主要内容,如果未能解决你的问题,请参考以下文章

网卡流量监控脚本 ( Shell )

求一个linux将监控网卡出入流量的shell脚本,每隔设定的时间输出到文本或其他地方存储

Nagios 监控windows网卡流量

对网卡流量监控的一些想法

psutil模块获取网卡流量

nagios网卡流量监控 trffic.sh