有没有办法将连续流从命令输出发送到远程侦听器

时间:2011-10-29 12:54:49

标签: bash sockets shell unix netcat

我正在使用netcat进行unix。

当我运行python script.py &> logfile.txt时,它会被连续捕获。

为了远程复制,我在侦听器(客户端)上尝试了nc -l -p 8011,在发送者(主机或服务器)上尝试了以下内容:

  1. python script.py &> nc 127.0.0.1 8011
  2. python script.py > nc 127.0.0.1 8011
  3. nc 127.0.0.1 8011 < python script.py
  4. 但似乎没有任何效果。请帮忙。

2 个答案:

答案 0 :(得分:5)

这就是你要追求的吗?

接收器:

nc -l 8011 >logfile.txt

发信人:

python script.py 2>&1 | nc 127.0.0.1 8011

确保首先运行接收器代码。


编辑:如果你不知道有很多different versions of netcat;他们都接受稍微不同的论点(例如,Debian上的nc.traditional希望nc -l -p 1234在端口1234上侦听,而BSD nc(例如OS X)只需要nc -l 1234和{{1如果您的主机不支持IPv6,除非您使用ncat标志,否则可能会抛出一个有趣的错误 - 阅读手册页以找出您真正想要的选项组合。

答案 1 :(得分:1)

完美答案,稍作修改:为“port”添加 -p

接收器:

nc -l -p 8011 >logfile.txt

我使用您的建议

提取了nc帮助文件(nc -h)

发信人:

nc -h 2>&1 | nc 127.0.0.1 8011

我试过

nc -h > logfile.txt
nc -h >> logfile.txt

从未奏效。

我在2 cmd.exe的

中运行netcat for Windows 7

再次感谢