Shell脚本监控网卡流量
2012-05-09 21:38
751 查看
说明:此脚本可以监控Linux系统下网卡流量,其中的注释信息本人用多个减号“-”划分开,为了方便这一块功能代码的表示。大家可以下载自己任意修改此脚本。本人属于一级笨鸟级别,希望大家能对脚本不足的地方给出评价。谢谢啦O(∩_∩)O~
#!/bin/bash
band () {
while true
do
rx1=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $2}')
tx1=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $10}')
sleep 1
rx2=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $2}')
tx2=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $10}')
clear
rxdiffer=$(($rx2 - $rx1))
txdiffer=$(($tx2 - $tx1))
#-----------INT KB/MB------
RRXKB=$(($rxdiffer/1024))
TTXKB=$(($txdiffer/1024))
RRXMB=$(($RRXKB/1024))
TTXMB=$(($TTXKB/1024))
#-------------------------------
#sleep 1
#---------------precision KB/MB---------------------
RXKB=$(awk 'BEGIN {print ('$rxdiffer'/1024)}')
TXKB=$(awk 'BEGIN {print ('$txdiffer'/1024)}')
RXMB=$(awk 'BEGIN {print ('$RXKB/1024')}')
TXMB=$(awk 'BEGIN {print ('$TXKB/1024')}')
#+++other count precision method+++
#RXKB=$(echo "scale=2;${rxdiffer}/1024" | bc)
#TXKB=$(echo "scale=2;${txdiffer}/1024" | bc)
#++++++++++++++++++++++++++++++++++
#---------------------------------------------------
#---------judge KB/MB--------------
if [ $RRXKB -lt 1024 ]; then
unit1="Kibp/s"
else
unit1="Mibp/s"
RXKB="$RXMB"
fi
if [ $TTXKB -lt 1024 ]; then
unit2="Kibp/s"
else
unit2="Mibp/s"
TXKB="$TXMB"
fi
#-----------------------------------
#sleep 1
echo -e $(date +%T;echo "-";date +%F;echo ">";echo "bandwidth")
printf "\n"
echo "IN_bandwidth: $rxdiffer /Byte"
echo "OUT_bandwidth: $txdiffer /Byte"
#-------------------other input medthod-------------------
#echo -e $(date +%T)
#echo -e "------------------------------------------------"
#echo -e "\t IN_bandwidth \t\t OUT_bandwidth"
#echo -e "\t ${RXKB} /$unit1 \t\t ${TXKB} /$unit2"
#echo -e "------------------------------------------------"
#---------------------------------------------------------
printf "%s\n" "--------------------------------------------------"
printf "\t%s\t" "IN_Bandwidth"
printf "\t%s\t\n" "OUT_Bandwidth"
printf " \n"
printf " %10.2f /$unit1" "$RXKB"
printf "\t %10.2f /$unit2\n" "$TXKB"
printf "%s\n" "--------------------------------------------------"
done
}
band
本文出自 “网络” 博客,请务必保留此出处http://fengqiang.blog.51cto.com/1133264/859163
#!/bin/bash
band () {
while true
do
rx1=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $2}')
tx1=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $10}')
sleep 1
rx2=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $2}')
tx2=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $10}')
clear
rxdiffer=$(($rx2 - $rx1))
txdiffer=$(($tx2 - $tx1))
#-----------INT KB/MB------
RRXKB=$(($rxdiffer/1024))
TTXKB=$(($txdiffer/1024))
RRXMB=$(($RRXKB/1024))
TTXMB=$(($TTXKB/1024))
#-------------------------------
#sleep 1
#---------------precision KB/MB---------------------
RXKB=$(awk 'BEGIN {print ('$rxdiffer'/1024)}')
TXKB=$(awk 'BEGIN {print ('$txdiffer'/1024)}')
RXMB=$(awk 'BEGIN {print ('$RXKB/1024')}')
TXMB=$(awk 'BEGIN {print ('$TXKB/1024')}')
#+++other count precision method+++
#RXKB=$(echo "scale=2;${rxdiffer}/1024" | bc)
#TXKB=$(echo "scale=2;${txdiffer}/1024" | bc)
#++++++++++++++++++++++++++++++++++
#---------------------------------------------------
#---------judge KB/MB--------------
if [ $RRXKB -lt 1024 ]; then
unit1="Kibp/s"
else
unit1="Mibp/s"
RXKB="$RXMB"
fi
if [ $TTXKB -lt 1024 ]; then
unit2="Kibp/s"
else
unit2="Mibp/s"
TXKB="$TXMB"
fi
#-----------------------------------
#sleep 1
echo -e $(date +%T;echo "-";date +%F;echo ">";echo "bandwidth")
printf "\n"
echo "IN_bandwidth: $rxdiffer /Byte"
echo "OUT_bandwidth: $txdiffer /Byte"
#-------------------other input medthod-------------------
#echo -e $(date +%T)
#echo -e "------------------------------------------------"
#echo -e "\t IN_bandwidth \t\t OUT_bandwidth"
#echo -e "\t ${RXKB} /$unit1 \t\t ${TXKB} /$unit2"
#echo -e "------------------------------------------------"
#---------------------------------------------------------
printf "%s\n" "--------------------------------------------------"
printf "\t%s\t" "IN_Bandwidth"
printf "\t%s\t\n" "OUT_Bandwidth"
printf " \n"
printf " %10.2f /$unit1" "$RXKB"
printf "\t %10.2f /$unit2\n" "$TXKB"
printf "%s\n" "--------------------------------------------------"
done
}
band
本文出自 “网络” 博客,请务必保留此出处http://fengqiang.blog.51cto.com/1133264/859163
相关文章推荐
- 一个监控网卡流量的shell脚本
- shell awk实现实时监控网卡流量脚本(常见应用二)
- shell脚本实现对网卡流量监控
- shell脚本实现对网卡流量监控
- 网卡流量监控脚本 ( Shell )
- 一个监控网卡流量的shell脚本
- linux下监控网卡流量的shell脚本
- shell脚本监控网卡流量
- shell awk实现实时监控网卡流量脚本(常见应用二)
- shell脚本实现对网卡流量监控
- linux shell awk实现实时监控网卡流量脚本
- 监控网卡流量的SHELL脚本
- shell awk实现实时监控网卡流量脚本(常见应用二)
- SHELL脚本:检测一坨IP是否都能ping通(网卡监控)
- 查看Linux服务器网卡流量小脚本shell和Python各一例
- 查看Linux服务器网卡流量小脚本shell
- Shell脚本 网卡流量统计(转)
- 查看网卡流量shell脚本工具:network_top.sh
- Shell脚本查看网卡实时流量
- 查看Linux服务器网卡流量小脚本shell和Python各一例 推荐