2

我正在尝试在后台启动 iperf 服务器并将输出重定向到文件。但它不起作用。

服务器:

iperf3 -s -D >> /tmp/listen.txt
            or
iperf3 -s -D > listen.txt

客户:

iperf3 -c <server-ip> -B <client-ip> > send.txt

我可以在客户端的 send.txt 中看到输出,但在服务器上,我看不到任何文件中写入的任何内容。有人可以帮我这个命令吗?

4

3 回答 3

2

不要使用 daemon 选项,而是使用nohup

nohup iperf3 -s >> /tmp/listen.txt 2>&1 &

这会将 iperf3 置于后台并使其免受挂断的影响。shell 将打印出作业号和 PID:

$ [1] 1234

您可以稍后通过发送 SIGTERM 来停止它kill

$ kill -SIGTERM 1234
于 2017-04-18T03:46:10.787 回答
1

在任何最近的 iperf3 上:

iperf3 --server --daemon --logfile iperf3.txt --pidfile iperf3.pid

(如果您愿意,可以替换短命令行标志)

服务器输出将转到文件iperf3.txt。进程 ID 将存储在文件中iperf3.pid……您可以在要终止进程时查找它。

如果您想确保输出以更及时的方式进入文件(可能对性能的影响很小),请添加--forceflush标志。

于 2017-04-21T17:50:12.507 回答
0

我只是在屏幕会话中运行它并使用“--logfile”选项来捕获输出。

screen -S iperf-server
iperf3 -s -B 10.11.12.13 -p 5001 --logfile s1.txt

您可以为客户做同样的事情。

于 2021-11-12T21:38:57.970 回答