linux监控流量脚本

一、

#!/bin/bash
Rx=`ifconfig eno16777736 | grep RX | grep packets | awk '{print $5}'`
Tx=`ifconfig eno16777736 | grep TX | grep packets | awk '{print $5}'`
sleep 2
Rx1=`ifconfig eno16777736 | grep RX | grep packets | awk '{print $5}'`
Tx1=`ifconfig eno16777736 | grep TX | grep packets | awk '{print $5}'`
r=$[$[$Rx1-$Rx]/1024]
t=$[$[$Tx1-$Tx]/1024]
rx=`awk 'BEGIN{printf "%.4f",('$Rx1'-'$Rx')/2/1024}'`
tx=`awk 'BEGIN{printf "%.4f",('$Tx1'-'$Tx')/2/1024}'`
if [ $r -ge 1024 ]
then
rx=`awk 'BEGIN{printf "%.4f",('$Rx1'-'$Rx')/2/1024/1024}'`
echo "$rx"MB/s
else
echo "$rx"KB/s
fi

if [ $t -ge 1024 ]
then
tx=`awk 'BEGIN{printf "%.3f",('$Tx1'-'$Tx')/2/1024/1024}'`
echo "$tx"MB/s

else
echo "$tx"KB/s 
fi

二、

#!/bin/bash
RX=$(cat /proc/net/dev | grep eno16777728 | tr : " " | awk '{print $2}')
TX=$(cat /proc/net/dev | grep eno16777728 | tr : " " | awk '{print $10}')
sleep 2
RX1=$(cat /proc/net/dev | grep eno16777728 | tr : " " | awk '{print $2}')
TX1=$(cat /proc/net/dev | grep eno16777728 | tr : " " | awk '{print $10}')
RX2=$((${RX1}-${RX}))
TX2=$((${TX1}-${TX}))
if [[ $RX2 -lt 1024 ]];then
RX2="${RX2}B/s"
elif [[ $RX2 -gt 1048576 ]];then
RX2=$(echo $RX2 | awk '{print $1/1048576 "MB/s"}')
else
RX2=$(echo $RX2 | awk '{print $1/1024 "KB/s"}')
fi
if [[ $TX2 -lt 1024 ]];then
TX2="${TX2}B/s"
elif [[ $TX2 -gt 1048576 ]];then
TX2=$(echo $TX2 | awk '{print $1/1048576 "MB/s"}')
else
TX2=$(echo $TX2 | awk '{print $1/1024 "KB/s"}')
fi
echo -e "==================================="
echo -e "Welcome to Traffic_Monitor stage"
echo -e "==================================="
echo -e "Date: `date +%F`"
echo -e "Time: `date +%k:%M:%S`"
echo -e "Status: $STATUS"
echo -e " RX TX"
echo "------------------------------"
echo -e "eno16777728 $RX2 $TX2 "
echo "------------------------------"

原文地址:https://www.cnblogs.com/zhanglong66/p/6646615.html