我正在一组从 txt 文件读取的主机之间运行 iperf,以下是我的运行方式:
h1,h2 = net.getNodeByName(node_id_1, node_id_2)
net.iperf((h1, h2))
运行良好并显示结果。但是,我想将 iperf 结果的输出保存在单独的 txt 文件中。有谁知道我如何将其应用到上面的代码上?
为了将 iperf 测试的结果存储在文件中,请添加 | tee 后跟 filename.txt 到您的命令行,例如:
iperf -c ipaddress -u -t 10 -i 1 |发球结果.txt
你已经尝试了吗:
--输出测试.log
(在较新的版本中
--logfile
)
或使用
youriperfexpr > 测试.log
我也遇到这个问题了。尽管联机帮助页指定“-o”或“--output”将输出保存到文件,但这实际上不起作用。
这似乎被标记为“WontFix”: https://code.google.com/p/iperf/issues/detail?id=24:
看起来 -o/--output 存在于以前的版本中,但在 当前版本。昨天会议的共识是,如果 --输出存在,那么我们应该修复它,否则人们应该使用 shell 重定向,我们将标记此 WontFix。所以,不会修复。
所以也许只需按照Paolo
的建议使用打字稿或“>test.log”我认为 Chiara Contoli 在这里给出了答案:iperf 结果在输出文件中
总结:
h1.cmd('iperf -s > server_output.txt &')
h2.cmd('iperf -t 5 -c ', h1.IP() + ' > client_output.txt &')
服务器
iperf3 -s -p <port> -B <IP> >> <filename> &
客户
iperf3 -p <port> -c <server_ip> -B <client_ip> -t 5 >> <filename>
完成后请确保终止服务器上的 iperf 进程
由于您在 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
如果您需要保存txt格式的文件。 在客户端计算机上运行 cmd(adm),然后您需要编写以下内容:
cd c:\iperf3
iperf3.exe -c "you server address" -p "port" -P 10 -w 32000 -t 0 >> c:\iperf3\text.txt
(-t 0) - 无穷大 在客户端计算机上,您将在 cmd 中看到黑屏。这是正常的。您将在服务器计算机中看到所有进程。测试后,在客户端计算机上的 cmd 中需要按 ctrl+c 并在 (y) 之后。 之后,您在目录
c:\iperf3\text.txt
中的文件将收集有关该时期的所有信息。
如果您在 cmd 中按下关闭,此文件text.txt
将为空。
建议在记事本或写字板中打开此文件以获得正确的视图。