Skip to content
Snippets Groups Projects
Select Git revision
  • 6f4cd0780215ce660afe1a9c86d4a5a376915170
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_netio

Blame
  • check_netio 2.47 KiB
    #!/bin/bash
    # ======================================================================
    #
    # Check NETIO to show traffic over all network cards
    # data besed on /proc/net/dev 
    #
    # ----------------------------------------------------------------------
    # 2020-07-08  v1.0  <axel.hahn@iml.unibe.ch>
    # ======================================================================
    
    
    . `dirname $0`/inc_pluginfunctions
    
    # ----------------------------------------------------------------------
    # MAIN
    # ----------------------------------------------------------------------
    
    
    tmpfile1=`mktemp`
    tmpfile2=`mktemp`
    
    typeset -i iRead=0
    typeset -i iTrans=0
    typeset -i iSpeedRead=0
    typeset -i iSpeedTrans=0
    typeset -i iTotalRead=0
    typeset -i iTotalTrans=0
    
    cat /proc/net/dev | grep -E "(eth|en[ops][0-9]*)" >$tmpfile1
    
    for myinterface in `cat $tmpfile1 | cut -f 1 -d ":" | tr -d " "`
    do
        echo >>$tmpfile2
        echo "--- $myinterface" >> $tmpfile2
        line=`grep "${myinterface}\:" $tmpfile1` 
        # echo "SOURCE: $line" >> $tmpfile2
    
        # total value of byte
        iRead=`echo $line | awk '{ print $2 }'`
        iTrans=`echo $line | awk '{ print $10 }'`
    
        # speed in byte per sec based on last stored value and its age
        iSpeedRead=` ph.perfdeltaspeed "netio-${myinterface}-rx" $iRead`
        iSpeedTrans=`ph.perfdeltaspeed "netio-${myinterface}-tx" $iTrans`
    
        # echo " > receive : $iRead .. $iSpeedRead byte/s"   >> $tmpfile2
        # echo " > transmit: $iTrans .. $iSpeedTrans byte/s" >> $tmpfile2
    
        printf "%15s %15s %10s %-10s \n"  "receive:"   $iRead  $iSpeedRead  "byte/s" >> $tmpfile2
        printf "%15s %15s %10s %-10s \n"  "transmit:"  $iTrans $iSpeedTrans "byte/s" >> $tmpfile2
    
        # to store data for each interface
        # mylabel=`echo $line | awk '{ print $1 }' | tr [:upper:] [:lower:]`
        # ph.perfadd "${myinterface}-rx"   "$iSpeedRead"
        # ph.perfadd "${myinterface}-tx"   "$iSpeedTrans"
    
        iTotalRead=$iTotalRead+$iSpeedRead
        iTotalTrans=$iTotalTrans+$iSpeedTrans
    done
    
    echo "" >> $tmpfile2
    echo "--- total:" >> $tmpfile2
    # echo " > receive : $iTotalRead byte/s"  >> $tmpfile2
    # echo " > transmit: $iTotalTrans byte/s" >> $tmpfile2
    printf "%15s %10s %-10s \n"  "receive:"   $iTotalRead  "byte/s" >> $tmpfile2
    printf "%15s %10s %-10s \n"  "transmit:"  $iTotalTrans "byte/s" >> $tmpfile2
    
    ph.perfadd "rx"   "$iTotalRead"
    ph.perfadd "tx"   "$iTotalTrans"
    
    ph.status "Network IO ... IN `ph.toUnit $iTotalRead M` MB/s >> [host] >> `ph.toUnit $iTotalTrans M` MB/s OUT"
    
    # cat $tmpfile1
    cat $tmpfile2
    
    rm -f $tmpfile1 $tmpfile2
    
    ph.exit