zoukankan      html  css  js  c++  java
  • 通过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
  • 相关阅读:
    Dockerfile基于centos镜像编译安装httpd
    Dockerfile基于centos镜像编译安装nginx
    Dockerfile介绍和常用指令
    Docker存储卷
    正则表达式
    Sed与Awk
    Shell函数
    Shell脚本基础
    Autofs
    Podman
  • 原文地址:https://www.cnblogs.com/dengcongcong/p/13171837.html
Copyright © 2011-2022 走看看