我试图用我的脚本启动一个tcpdump。但我总是得到不止一个。那是我的ps输出:
1260 root tcpdump -i br0 -C 1024 -w /media/usbhd-sdc2/pcaps/abfrage2.pcap
1267 root tcpdump -i br0 -C 1024 -w /media/usbhd-sdc2/pcaps/abfrage2.pcap
这是我的代码,我检查正常运行时间是否与我的开始时间相同。 如果它是相同的,它应该启动一个tcpdump,它也应该保存PID 但为什么它会启动第二个,这是否会发生,因为我的函数readPID不够快?
if [[ $timestart == $Zeit ]] || [[ "$pid1" != "" ]];then
echo "First"
if [[ $timeend != $Zeit ]];then
echo "second"
if [ "$pid1" == "" ];then
echo "third"
if [ "$port" != "" ];then
echo "fourth"
run_tcpdump port
pid1=$(readPID1)
echo $pid1
else
ReadPID功能:
readPID1(){
ps -eo pid,args|awk '/abfrage2/ && ! /awk/{print $1}'
}
更新
Tcpdump功能:
run_tcpdump(){
if [ "$1" == "port" ];then
sudo tcpdump port $port -i br0 -C 1024 -w /media/usbhd-sd[b-c]2/pcaps/abfrage2.pcap &
else
sudo tcpdump -i br0 -C 1024 -w /media/usbhd-sd[b-c]2/pcaps/abfrage2.pcap &
fi
}