前提・実現したいこと
python3でsubprocess.Popenを用い、ネット性能実測コマンド(iperf3)を実行しています。
Popen, iperf3そのものは問題なく実行できていますが、iperf3の-T(title)オプション活用で
つまずいています。
試行したコードと結果出力、および期待する出力を以下に示します。
python3
1>>> import subprocess 2>>> import sys 3>>> from time import sleep 4>>> 5>>> round_id=1 6>>> while True: 7... a=subprocess.Popen("iperf3 -c bouygues.iperf.fr -t 5 -T `date +%F_%T`.TCPround=$round_id ", shell=True) 8... sleep(30.0) 9... round_id+=1 10...
結果:
2018-08-29_17:13:03.TCPround=: Connecting to host bouygues.iperf.fr, port 5201 2018-08-29_17:13:03.TCPround=: [ 7] local 192.168.225.20 port 51698 connected to 89.84.1.222 port 5201 途中省略 2018-08-29_17:13:03.TCPround=: iperf Done. 2018-08-29_17:13:33.TCPround=: Connecting to host bouygues.iperf.fr, port 5201 2018-08-29_17:13:33.TCPround=: [ 7] local 192.168.225.20 port 51735 connected to 89.84.1.222 port 5201 途中省略 2018-08-29_17:13:33.TCPround=: iperf Done.
期待する出力:
2018-08-29_17:13:03.TCPround=1: Connecting to host bouygues.iperf.fr, port 5201 2018-08-29_17:13:03.TCPround=1: [ 7] local 192.168.225.20 port 51698 connected to 89.84.1.222 port 5201 途中省略 2018-08-29_17:13:03.TCPround=1: iperf Done. 2018-08-29_17:13:33.TCPround=2: Connecting to host bouygues.iperf.fr, port 5201 2018-08-29_17:13:33.TCPround=2: [ 7] local 192.168.225.20 port 51735 connected to 89.84.1.222 port 5201 途中省略 2018-08-29_17:13:33.TCPround=2: iperf Done.
iperf3の-Tオプションへ渡したいstringのうち、日時は問題なく渡っておりiperf3出力行のタイトルとして表示されますが、round_idは表示されません。 iperf3固有の問題ではなく、Python3でのパラメータの渡し方の問題かと思いますが解決方法をご教示ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/29 10:31
2018/08/29 11:01 編集