首页 > 解决方案 > 在后台运行 tcpdump

问题描述

我有一个问题,我正在做一个实验,所以我试图通过双 ssh 运行 python 脚本,所以我必须捕获每个节点上的流量,然后我制作了一个可以在每个节点上运行的函数。但问题是我无法在启动 Tcpdump 后运行脚本来启动流量(运行 tcp dump 后提示挂起)。我尝试了很多方法来解决这些问题,但我仍然注意到最好的方法。我只想在后台运行 tcpdump 并在节点上运行其他命令。

我已经尝试过选项“nohup”或将“&”放在最后,但出现语法错误。我在 Mac 操作系统上运行它。

这是 pom.sh 中的 python 脚本外壳:

def function(run-tcpdump):
    local interface="mon0"; shift
    local output="fit"; shift

    local USAGE="Usage; $FUNCNAME interface output [tcpdump extra args]"

  [ -z "$output" ] && { echo $USAGE; return 1; }

    cd
    local command="tcpdump -n -U -w ${output}.pcap -i ${interface} " 
    echo "${interface} traffic tcpdump'ed into $pcap with command:"
    echo "$command"
    $command

    return 0

这就是我在 pom.py 中调用函数的地方:

 run_sender = SshJob(
        node=sender,
        commands=[RunScript(auxiliary_script, "run-tcpdump"),
        RunScript(auxiliary_script, "run-sender", packets, size, period)],

        label="run-sender")

如您所见,我必须运行名为 run-sender 的其他函数才能开始发送数据包,但是当启动 tcpdump 函数时,远程 shell 被挂起,我无法再运行函数“run-sender”。

这是下面的描述:

等待某个接口在驱动程序 iwlwifi 上运行使用 wlan 设备 intel tcpdump:监听 mon0,链接类型 IEEE802_11_RADIO(802.11 加上 radiotap 标头),捕获大小 262144 字节

注意/对不起我的baenglish :)
谢谢大家。

标签: pythonshellnetwork-programmingwifi

解决方案


推荐阅读