任务要求:目前有一个需求,实现一个 Bash 脚本,获取指定端口的数据包统计信息。这个脚本输入参数为统计的目标端口号,只会执行3秒钟,并打印这3秒钟指定端口传输的数据包数量。输出一行为包的总数量
#!/bin/bash
touch packages.txt
"(tcpdump -v -i eth0 -nn port $1 > packages.txt)&" &>/dev/null # (命令)& 后台执行
sleep 3 #等待三秒
if (( "$SECONDS"== 3)) #预设变量shell执行时间
then
pid=(`ps -ef | grep "tcpdump" | grep -v grep | awk '{print $2}'`) #杀死tcpdump进程
for i in ${!pid[@]} #防止多个tcpdump
do
kill -9 ${pid[i]}&>/dev/null
done
fi
Packages=(`cat packages.txt |wc -l`)
echo "Packages:" $Packages
大家有没有更好的想法啊,交流交流