我正在尝试在后台启动 iperf 服务器并将输出重定向到文件。但它不起作用。
服务器:
iperf3 -s -D >> /tmp/listen.txt
or
iperf3 -s -D > listen.txt
客户:
iperf3 -c <server-ip> -B <client-ip> > send.txt
我可以在客户端的 send.txt 中看到输出,但在服务器上,我看不到任何文件中写入的任何内容。有人可以帮我这个命令吗?
不要使用 daemon 选项,而是使用nohup
:
nohup iperf3 -s >> /tmp/listen.txt 2>&1 &
这会将 iperf3 置于后台并使其免受挂断的影响。shell 将打印出作业号和 PID:
$ [1] 1234
您可以稍后通过发送 SIGTERM 来停止它kill
:
$ 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
您可以为客户做同样的事情。