问题描述
目标:为不同的主机运行 iperf
服务器和客户端,以测量链接之间的带宽。我想在后台运行 iperf-server
,但想在阻塞模式下运行 iperf-client
(以捕获 iperf 结果)。
hs = 'h1'
subprocess.Popen(['/home/mininet/mininet/util/m',hs,'iperf','-s'],stdout=subprocess.PIPE,stdin=subprocess.PIPE)
由于我没有在此处调用 subprocess.Popen().communicate()
函数,subprocess.Popen()
将在后台自动运行服务器。
客户端进程:我运行以下命令将客户端作为阻塞运行
hc = 'h2'
hs_ip = '10.0.0.1' #ip of host h1
c_result = subprocess.Popen(['/home/mininet/mininet/util/m',hc,'-t 5','-c',hs_ip,' &> client.log &'],stdin=subprocess.PIPE).communicate()
问题: 现在的问题是我添加了 "&> client.log &"
以将 iperf 命令的输出转发到“client.log”文件。但是,我想在程序中捕获iperf的日志并解析输出日志以检索带宽。我该怎么做?
我尝试从 iperf 客户端命令中删除这部分 "&> client.log &"
。但在这种情况下,它会给出类似 connect Failed: No route to host
的错误。谁能帮我解决这个问题?
提醒一下,目标是在程序中捕获iperf客户端输出日志,以找出链接的带宽。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)