查看网卡流量shell脚本工具:network_top.sh
2011-12-16 21:55
731 查看
数据库服务器、图片服务器、提供FTP服务器等网卡的流量,一般都会比较大,为此我们非常有必要进行必要的监控措施,以便知晓网卡是否会成为瓶颈,以及可以建立网卡流量基准线,方便对比查看流量是否有异常。
通过shell脚本编写一小段代码实现查看网卡端口流量的效果:
1) 查看指定的某网卡端口的流量
2) 查看端口的流入值/流出值/总量值;
3) 指定二次观察端口流量的间隔时间和观察次数;
shell脚本network_top.sh实现的三种效果截图,如图所示:
1) 执行network_top.sh脚本无传递任何参数的错误提示信息
图1-1
2) 执行network_top.sh脚本传递错误参数的错误提示信息
图1-2
3) 执行network_top.sh脚本正确传递参数的采集数据效果图
图1-3
shell脚本network_top.sh的代码段
[/code]
通过shell脚本编写一小段代码实现查看网卡端口流量的效果:
1) 查看指定的某网卡端口的流量
2) 查看端口的流入值/流出值/总量值;
3) 指定二次观察端口流量的间隔时间和观察次数;
shell脚本network_top.sh实现的三种效果截图,如图所示:
1) 执行network_top.sh脚本无传递任何参数的错误提示信息
图1-1
2) 执行network_top.sh脚本传递错误参数的错误提示信息
图1-2
3) 执行network_top.sh脚本正确传递参数的采集数据效果图
图1-3
shell脚本network_top.sh的代码段
#!/bin/bash #Name: network_top.sh #Usage: sh network_top.sh --network-port=eth0 --interval-time=1 --repeat-total=10 #Description: monitor the network interface's flow #WebSite: www.mysqlops.com usage() { cat <<EOF Usage: $0 [OPTIONS] --network-port=ethN Show which network port,For Example --network-port=eth0. --interval-time=N Every twice that need interval time,For Example --interval-time=1. --repeat-total=N We need to see a continuous flow of card number,For Example --repeat-total=10. EOF exit 1 } if [ "$#" -lt 1 ] ; then usage fi for INPUT_DATA in $* do INPUT_DATA_1=$1 Val=`echo "$INPUT_DATA_1" | sed -e "s;--[^=]*=;;"` case "$INPUT_DATA_1" in --network-port=*) ETH_PORT="$Val" ;; --interval-time=*) INTERVAL_TIME="$Val" ;; --repeat-total=*) REPEAT_TOTAL="$Val" ;; *) echo -e "\n ERROR VARIABLES: $INPUT_DATA_1 \n" usage exit 1 ;; esac shift done infirst=$(cat /proc/net/dev |tr ':' ' '|awk '/'$ETH_PORT'/{print $2}') outfirst=$(cat /proc/net/dev |tr ':' ' '|awk '/'$ETH_PORT'/{print $10}') echo "$ETH_PORT" "in_bytes/sec" "out_bytes/sec" "total_bytes/sec" |awk '{printf("%10s %16s %16s %16s\n",$1,$2,$3,$4)}' sleep $INTERVAL_TIME"s" i=0 while [ "$i" -lt "$REPEAT_TOTAL" ] do inend=$(cat /proc/net/dev |tr ':' ' '|awk '/'$ETH_PORT'/{print $2}') outend=$(cat /proc/net/dev |tr ':' ' '|awk '/'$ETH_PORT'/{print $10}') sumin=$((($inend-$infirst)/$INTERVAL_TIME)) sumout=$((($outend-$outfirst)/$INTERVAL_TIME)) sum=$(($sumin+$sumout)) echo "$ETH_PORT" $sumin $sumout $sum |awk '{printf("%10s %16s %16s %16s\n",$1,$2,$3,$4)}' infirst=$inend outfirst=$outend i=$(($i+1)) sleep $INTERVAL_TIME"s" done
[/code]
相关文章推荐
- 查看网卡流量shell脚本工具:network_top.sh
- 查看Linux服务器网卡流量小脚本shell和Python各一例 推荐
- Shell脚本查看网卡实时流量
- 查看Linux服务器网卡流量小脚本shell
- 查看Linux服务器网卡流量小脚本shell和Python各一例
- Shell脚本查看网卡实时流量
- linux 查看网卡流量的shell脚本
- shell脚本助你在linux下实时查看单网卡流量
- Linux下网络流量监控工具大全,查看网卡的实时流量脚本
- shell脚本实现对网卡流量监控
- shell脚本网络流量实时查看
- 查看网卡流量的小脚本
- 实时查看linux网卡流量脚本
- shell awk实现实时监控网卡流量脚本(常见应用二)
- Linux下查看网卡实时流量工具
- linux查看网卡流量工具lftop命令
- 一个监控网卡流量的shell脚本
- 统计网卡流量的两段shell脚本(使用ifconfig) 详细出处参考:http://www.jb51.net/article/34290.htm
- shell脚本之获取网卡实时流量
- linux查看网卡平均流量的脚本