美文网首页
统计多网卡流量(1)

统计多网卡流量(1)

作者: 小王同学123321 | 来源:发表于2018-05-29 16:44 被阅读0次

    面对众多的服务器,每台服务器的网卡名又不固定。所以需要写一个通用的形式来输出网卡的流量

    #!/bin/bash
    
    echo "==monitor(network_name)"
    
    #==================================network_card==========================================
    
    network_card=$(awk '{if(NR>2)split($1,array,":");print array[1]}' /proc/net/dev  | awk '{if(length !=0) print $0}')
    
    for i in ${network_card[*]}
    
    do
    
        ifconfig ${i} >/dev/null 2>&1
    
                if [ $? -eq 0 ];then
    
                i_in_old=$(ifconfig $i | awk '$0~/RX bytes/{split($2,array,":");print array[2]}')
    
                i_out_old=$(ifconfig $i | awk '$0~/TX bytes/{split($2,array,":");print array[2]}')
    
    
    
                sleep 1
    
                i_in_new=$(ifconfig $i | awk '$0~/RX bytes/{split($2,array,":");print array[2]}')
    
                i_out_new=$(ifconfig $i | awk '$0~/TX bytes/{split($2,array,":");print array[2]}')
    
                i_in=$(echo "scale=2;(${i_in_new} - ${i_in_old})/1024.0"| bc)
    
                i_out=$(echo "scale=2;(${i_out_new} - ${i_out_old})/1024.0" | bc)
    
                echo "network_name=${i},in_bandwidth"=${i_in},out_bandwidth"=${i_out}"
    
            else
    
                continue
    
            fi
    
    done
    
    

    上面的执行思路是没先把网卡筛选出来,然后挨个循环一次,循环到一个网卡的时候通过沉睡一分钟计算网卡流量

    相关文章

      网友评论

          本文标题:统计多网卡流量(1)

          本文链接:https://www.haomeiwen.com/subject/kyyajftx.html