持续监听端口并将数据转储到文件

持续监听端口并将数据转储到文件

我使用此命令来监听端口并将数据转储到文件:

while :  ; do nc -l 0.0.0.0 10000 > log.txt & done

第一个请求工作完美,它被转储到 log.txt 中,但是在第一个请求之后,nc 不再监听而是停止了。

有人能指出我做错什么了吗?

我只想让它在后台持续运行并将来自该端口的任何请求记录到 log.txt 文件中......

答案1

您必须添加一个选项数控。该选项取决于数控您正在运行。例如,在我的例子中 (Kubuntu),选项是-k. 从手册页中,

-k 强制 nc 在当前连接完成后继续监听另一个连接。如果未使用 -l 选项使用此选项,则会出现错误。

我不能保证-k可以(当然,除非你使用的是 Ubuntu),你必须搜索类似的内容。例如,在我的 Debian 上,-k不存在,但你发现:

-q 在标准输入上的 EOF 之后的秒数,等待指定的秒数然后退出。如果秒数为负数,则永远等待

编辑:

要检查它是否正常工作,请在一台电脑上执行以下操作:

  nc -k -l 0.0.0.0 10000 > out.txt

在第二台电脑上:

  echo Hello | nc IP_address_of_first_pc 10000

发出上述命令几次,然后中断数控在 pc1 上执行命令,检查 out.txt 中的行数。

相关内容