如何将Iperf结果保存到输出文件中

3 投票
7 回答
44055 浏览
提问于 2025-04-20 04:48

我正在使用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

撰写回答