gpt4 book ai didi

linux - shell 脚本中的 tcpdump 没有捕获任何内容

转载 作者:IT王子 更新时间:2023-10-29 01:23:34 25 4
gpt4 key购买 nike

我想启动一个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 节点)虽然我可以从 ps -ef 看到进程 tcpdump它什么也没捕捉到我看到 mypcap 文件在 cap.sh 完成后为 0 字节

可能的原因是什么?以及如何使 shell 脚本中的 tcpdump 捕获数据包?谢谢!

最佳答案

不要使用kill -9。这不仅几乎总是错误的做法,而且还可能导致这里出现问题,因为缓冲数据被丢弃而不是写入磁盘。使用普通的 kill 或 kill -2

另一种选择是添加 -U 选项以在每个数据包后刷新输出缓冲区。

关于linux - shell 脚本中的 tcpdump 没有捕获任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16096027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com