运行 iperf 在后台并将输出重定向到文件

run iperf in background and redirect output to a file

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

服务器:

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

客户:

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

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

不使用守护程序选项,而是使用 nohup:

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

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

$ [1] 1234

您稍后可以通过使用 kill:

发送 SIGTERM 来停止它
$ kill -SIGTERM 1234

在任何最近的 iperf3 上:

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

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

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

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

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

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

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