Linux 获取指定网络端口数据包数量的shell脚本

有一个需求,实现一个 Bash 脚本 ,获取指定端口的数据包统计信息。这个脚本输入参数为统计的目标端口号,只会执行3秒钟,并打印这5秒钟指定端口传输的数据包数量。

 

#!/bin/bash
touch datacatch.txt
"(sudo tcpdump -v -i eth0 -nn port $1 > datacatch.txt) &" &>/dev/null

sleep 5
pid=`ps -ef | grep "tcpdump" | awk '/tcpdump/{print $2;exit;}'`
sudo kill -9 $pid  >> datacatch.txt
package=`cat datacatch.txt | awk '/packets captured/{print $1}'`

echo "Packages:" $package

 

你可能感兴趣的:(Linux,Shell)