3

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

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

net.iperf((h1, h2))

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

4

6 回答 6

2

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

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

于 2015-12-06T06:40:06.577 回答
1

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

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

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

所以也许只是按照Paolo的建议使用 typescript 或 ">test.log"

于 2015-03-05T21:39:56.987 回答
1

您是否已经尝试过:

--输出测试日志

(在较新的版本中--logfile

或使用

youriperfeexpr > test.log

于 2014-09-08T23:33:31.297 回答
1

我认为 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 &')
于 2018-04-25T12:41:43.833 回答
0

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

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

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

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

于 2018-12-13T11:56:14.823 回答
0

由于您在 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

于 2018-04-26T08:48:15.680 回答