通过snmpwalk抓取设备端口的流量状况

#!/bin/sh

Date=`date +%F" "%H:%M:%S`
snmp="XXX"
Host="XXX"
MIB="IF-MIB::ifHCOutOctets.44 = Counter64"

while true
do
    for i in `ls -l`
    do
        first=`snmpwalk -v 2c -c $snmp $Host $MIB |awk '{print $NF}'`
        sleep 10
        while true
        do
            last=`snmpwalk -v 2c -c $snmp $Host $MIB |awk '{print $NF}'`
            byte=`echo "$last-$first" |bc`
            mbps=`echo "scale=2;$byte*8/10/1000000000" |bc`
            if [ $(echo "$mbps > 9" | bc ) = 1 ];then
                webhook='https://oapi.dingtalk.com/robot/send?access_token=xxx'
                Name='端口'
                port="10g1/0/40"
                function SendMsgToDingding() {
                    curl $webhook -H 'Content-Type: application/json' -d "
                    {
                        'msgtype': 'text',
                        'text': {
                             'content': '告警时间:$Date 
告警信息:$Name流量阈值警告 
当前流量:${mbps}G 
$port流量超出9
G,请注意!!!'       
                        },
                        'at':{
                                'isAtAll': false
                        }
                    }"
               }
            SendMsgToDingding 
            fi
        break
        done
    done
done
原文地址:https://www.cnblogs.com/dengcongcong/p/13171837.html