我在从 txt 文件读取的一组主机之间运行 iperf,这是我运行它的方式:
h1,h2 = net.getNodeByName(node_id_1, node_id_2)
net.iperf((h1, h2))
它运行良好并显示结果。但是,我想将 iperf 结果的输出保存在一个单独的 txt 文件中。有谁知道我如何将它应用到上面的代码中?
我在从 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
我也有这个问题。尽管手册页指定“-o”或“--output”将您的输出保存到文件中,但这实际上不起作用。
似乎这被标记为“WontFix”: https ://code.google.com/p/iperf/issues/detail?id=24 :
看起来 -o/--output 在以前的版本中存在,但在当前版本中不存在。昨天会议的共识是,如果 --output 存在,那么我们应该修复它,否则人们应该只使用 shell 重定向,我们将标记这个 WontFix。所以,WontFix。
所以也许只是按照Paolo的建议使用 typescript 或 ">test.log"
您是否已经尝试过:
--输出测试日志
(在较新的版本中--logfile
)
或使用
youriperfeexpr > test.log
我认为 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 &')
如果您需要以 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 将为空。
建议在记事本或写字板中打开此文件以获得正确的视图。
由于您在 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