linux 网卡流量脚本,实时查看Linux网卡流量的shell脚本分享(图文)

实时查看linux下的网卡流量,脚本内容如下:

复制代码 代码示例:

#!/bin/bash

#filename interface.sh

eth=eth0

RXpre=$(ifconfig ${eth} | grep bytes | awk  '{print $2}'| awk -F":" '{print $2}')

TXpre=$(ifconfig ${eth} | grep bytes | awk '{print $6}' | awk -F":" '{print $2}')

sleep 1

RXnext=$(ifconfig ${eth} | grep bytes | awk  '{print $2}'| awk -F":" '{print $2}')

TXnext=$(ifconfig ${eth} | grep bytes | awk '{print $6}' | awk -F":" '{print $2}')

echo RX ----- TX

echo "$(((${RXnext}-${RXpre})/1024))KB/s   $(((${TXnext}-${TXpre})/1024))KB/s"

代码说明:

1、默认监视eth0流量,换算成KB所以精度不高,需要精确数据时可以不除以1024。

2、限于sleep命令的间隔最小为秒,本脚本检测到的数据实时性仅作参考。

调用方法:

复制代码 代码示例:

watch -n 1 ./interface.sh

即可开始监看流量,按ctrl+c中断监测,退出。

以上用到了watch命令,可以实时显示监测结果到屏幕上。

如下图:

a_9284

以上代码,只能监测在eth0上,且间隔只能为1秒,因为脚本中固定了这些参数值。

下面是此脚本的改进版,可以接收二个参数值,一是要监测的网卡接口,比如eth0,另一个参数是监测的间隔时间。

代码如下:

复制代码 代码示例:

#!/bin/bash

#filename interface.sh

usage() {

echo "Useage : $0"

echo "eg. sh $0 eth0 3"

exit 1

}

if [ $# -lt 2 ]

then

usage

fi

eth=$1

timer=$2

eth=eth0

RXpre=$(ifconfig ${eth} | grep bytes | awk  '{print $2}'| awk -F":" '{print $2}')

TXpre=$(ifconfig ${eth} | grep bytes | awk '{print $6}' | awk -F":" '{print $2}')

sleep $timer

RXnext=$(ifconfig ${eth} | grep bytes | awk  '{print $2}'| awk -F":" '{print $2}')

TXnext=$(ifconfig ${eth} | grep bytes | awk '{print $6}' | awk -F":" '{print $2}')

echo RX ----- TX

echo "$(((${RXnext}-${RXpre})/1024))KB/s   $(((${TXnext}-${TXpre})/1024))KB/s"

调用示例:

1405434527_4492.jpg

1405434527_6165.jpg

以上多次用到watch命令,它主要用来实时监测命令的运行结果。

下面补充下watch命令的用法。

watch命令。

Usage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=] [--no-title] [--version]

-d, --differences[=cumulative]        highlight changes between updates

(cumulative means highlighting is cumulative)

-h, --help                            print a summary of the options

-n, --interval=              seconds to wait between updates

-v, --version                         print the version number

-t, --no-title                        turns off showing the header

watch -- 监测命令的运行结果

watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,watch可以实时监测一个命令的运行结果。

在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。

-d, --differences[=cumulative] 高亮显示变动

-n, --interval= 周期(秒)

如:

复制代码 代码示例:

watch -n 1 -d netstat -ant

其它操作:

切换终端: Ctrl+x

退出watch:Ctrl+g

复制代码 代码示例:

watch -n 1 -d 'pstree|grep http'

每隔一秒高亮显示http链接数的变化情况。

后面接的命令若带有管道符,需要加''将命令区域归整。

在查看攻击时,经常使用的方式如下:

实时查看模拟攻击客户机建立起来的连接数,使用:

复制代码 代码示例:

watch 'netstat -an | grep:21 | \ grep| wc -l'

查看模拟攻击客户机被 DROP 的数据包数:

复制代码 代码示例:

watch 'iptables -L -n -v | \grep'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值