【问题标题】:How to save Iperf result in an output file如何将 Iperf 结果保存在输出文件中
【发布时间】:2018-12-13 19:56:14
【问题描述】:

我正在从 txt 文件读取的一组主机之间运行 iperf,这是我的运行方式:

h1,h2 = net.getNodeByName(node_id_1, node_id_2)

net.iperf((h1, h2))

它运行良好并显示结果。但是,我想将 iperf 结果的输出保存在一个单独的 txt 文件中。有谁知道我如何在上面的代码中应用它?

【问题讨论】:

    标签: python networking iperf mininet


    【解决方案1】:

    为了将 iperf 测试的结果存储在一个文件中,添加 | tee 后跟 filename.txt 到您的命令行,例如:

    iperf -c ipaddress -u -t 10 -i 1 |发球结果.txt

    【讨论】:

      【解决方案2】:

      我也有这个问题。尽管手册页指定“-o”或“--output”将您的输出保存到文件中,但这实际上不起作用。

      这似乎被标记为“WontFix”: https://code.google.com/p/iperf/issues/detail?id=24:

      看起来 -o/--output 在以前的版本中存在,但在 当前版本。昨天会议的共识是,如果 --output 存在然后我们应该修复它,否则人们应该只使用 shell 重定向,我们将标记这个 WontFix。所以,WontFix。

      所以也许只使用 typescript 或 ">test.log" 正如Paolo 所建议的那样

      【讨论】:

        【解决方案3】:

        您是否已经尝试过:

        --输出test.log

        (在较新的版本中--logfile

        或使用

        youriperfexpr > test.log

        【讨论】:

        • 嗨 Paolo,我尝试使用 net.iperf((h1, h2)) > test.log 并收到错误:NameError: global name 'test' is not defined
        • 如果你使用这个命令,mininet 会尝试运行 test.log 作为它的 CLI 命令之一。我以前做的是 h1 在这种情况下它不起作用,我不知道为什么。对我有用的是 1. 在 CLI 中运行 xterm h1 和 xterm h2 2. iperf -s 在 h2 3. iperf -c 在 h1 就是这样!
        • Paolo - 我在我的 macbook 上安装的 mininet(在 ubuntu 虚拟机上)运行 iperf。
        • user3771522 - 这完全有道理。但我不想使用 xterm,因为我的 mininet 有 24 个交换机,而且我想为许多实例运行 iperf。就像我在一个 txt 文件中有一组服务器/客户端,当我运行 iperf 时:它从该 txt 文件中读取服务器/客户端并显示结果。效果很好,但为了分析输出,我想将它保存在某个文件中。
        【解决方案4】:

        我认为 Chiara Contoli 在这里给出了答案:iperf result in output file

        总结:

        h1.cmd('iperf -s > server_output.txt &')
        h2.cmd('iperf -t 5 -c ', h1.IP() + '  >  client_output.txt &')
        

        【讨论】:

          【解决方案5】:

          由于你是在python上运行的,另一种保存结果的方法是使用popen:

          popen( '<command> > <filename>', shell=True)
          

          例如:

          popen('iperf -s -u -i 1 > outtest.txt', shell=True)
          

          您可以查看此以获取更多信息:

          https://github.com/mininet/mininet/wiki/Introduction-to-Mininet#popen

          【讨论】:

            【解决方案6】:

            如果您需要以 txt 格式保存文件。 在客户端机器上运行 cmd(adm) 然后你需要这样写:

            cd c:\iperf3 iperf3.exe -c "你的服务器地址" -p "端口" -P 10 -w 32000 -t 0 >> c:\iperf3\text.txt

            (-t 0) - 无穷大 在客户端计算机上,您将在 cmd 中看到黑屏。这是正常的。您将在服务器机器中看到所有进程。在您的测试之后,在 cmd 中的客户端机器上需要 push ctrl+ c 和之后 (y)。 之后,您在目录 c:\iperf3\text.txt 中的文件会收集有关此期间的所有信息。 如果您在 cmd 中按下关闭,此文件 text.txt 将为空。

            建议在记事本或写字板中打开此文件以获得正确的视图。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-02-15
              • 2021-10-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多