有一个需求,实现一个 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