快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

Unix/Linux 系统: 网络接口带宽管理(2)(2)

    Traffic=`grep ${INT} /proc/net/dev`

    Transmit=`echo ${Traffic}|awk '{print $1}'|cut -d: -f2`

    Receive=`echo ${Traffic}|awk '{print $9}`

    ;;

    *)      echo "not support $OS operating system!"

    exit 1;

    ;;

    esac

    case "$DuplexType" in

    Full)

    # 连接模式全双工时,需要分别计算发送和接收流量是否超出门限

    if [ `expr $Transmit - $OLD_TRAN` -ge $BYTETHRES ] || \

    [ `expr $Receive - $OLD_RECV` -ge $BYTETHRES ] ;then

    Alarm="YES"

    fi

    ;;

    Half)

    # 连接模式半双工时,需要合计计算发送和接收流量是否超出门限

    if [ `expr $Transmit - $OLD_TRAN + $Receive - $OLD_RECV` \

    -ge $BYTETHRES ] ;then

    Alarm="YES"

    fi

    ;;

    *)      echo "not support Duplex type!"

    exit 1;

    ;;

    esac

    # 在日志中记录流量信息

    echo "INT:${INT}        TIME:`date +%Y%m%d%H%M%S`        \

    TRANS:${Transmit}       RECV:${Receive} ALARM:${Alarm}" \

    >> ${LogFile}

    # 如果超出告警门限, 给管理员发送告警门限

    if [ $Alarm = "YES" ];then

    echo "INT:${INT}      TIME:`date +%Y%m%d%H%M%S`     \

    TRANS:${Transmit}  RECV:${Receive} ALARM:${Alarm}" \

    >> mail.tmp

    mail -s "Bandwidth Alert"  root@localhost< mail.tmp

    fi

    # 设置下次循环前重值

    OLD_TRAN=$Transmit

    OLD_RECV=$Receive

    Alarm="NO"

    sleep $SEC

    n=`expr $n + 1`

    done

    exit 0

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论