如何将Iperf结果保存到输出文件中
我正在使用iperf在一组主机之间进行测试,这些主机是从一个文本文件中读取的,下面是我运行的方式:
h1,h2 = net.getNodeByName(node_id_1, node_id_2)
net.iperf((h1, h2))
这个程序运行得很好,并且显示了结果。但是,我想把iperf的结果保存到一个单独的文本文件里。有没有人知道我该如何在上面的代码中实现这个功能?
7 个回答
1
服务器
iperf3 -s -p <port> -B <IP> >> <filename> &
客户端
iperf3 -p <port> -c <server_ip> -B <client_ip> -t 5 >> <filename>
完成后,记得在服务器上结束iperf进程
1
我觉得这个问题的答案是Chiara Contoli在这里给出的:iperf结果在输出文件中
简单来说:
h1.cmd('iperf -s > server_output.txt &')
h2.cmd('iperf -t 5 -c ', h1.IP() + ' > client_output.txt &')
1
我也遇到过这个问题。虽然手册上说可以用“-o”或者“--output”把输出保存到文件里,但实际上这个功能并不好用。
看起来这个问题被标记为“不会修复”: https://code.google.com/p/iperf/issues/detail?id=24:
看起来“-o/--output”在之前的版本中是有的,但在当前版本中没有。在昨天的会议上大家达成的共识是,如果“--output”功能存在,那就应该修复它;如果没有,那大家就用其他方法来处理,比如用命令行重定向,我们就标记为“不会修复”。所以,标记为“不会修复”。
所以也许可以使用typescript或者“>test.log”,就像Paolo建议的那样。
2
为了把iperf测试的结果保存到一个文件里,你可以在命令后面加上| tee,然后再加上你想要的文件名,比如filename.txt。举个例子:
iperf -c ipaddress -u -t 10 -i 1 | tee result.txt
2
你试过以下方法吗:
--output test.log
(在新版本中可以用 --logfile
)
或者使用:
youriperfexpr > test.log