我想启动一个 TCP 程序并捕获相关的数据包,我的 shell 脚本cap.sh
如下:
sudo tcpdump -i eth0 -w mypcap &
sleep 3
./tcp_receiver
sleep 2
x=`ps -ef|grep "tcpdump"|grep -v "grep"|awk '{print $2}'`
sudo kill -9 $x
我跑cap.sh
sudo ./cap.sh
所以实际上在这个shell中,我可以在sudo
没有密码的情况下运行,主机只是远程机器(PLanetlab节点)上的一个虚拟切片,虽然我可以看到它的进程tcpdump
没有ps -ef
捕获任何东西我看到文件在完成mypcap
后是0字节cap.sh
潜在的原因是什么?以及如何使 shell 脚本中的 tcpdump 捕获数据包?谢谢!