【问题标题】:Piping output from a python script to a remote machine?将python脚本的输出通过管道传输到远程机器?
【发布时间】:2011-03-11 20:38:19
【问题描述】:

我有一个 python 脚本,可以在屏幕上输出/打印一个大数组(大小为 50MB)。该脚本在machineA 上运行。是否有可能将此输出“管道”到machineB,在那里进行处理?

我知道我可以将输出保存在machineA 上的文件中,然后将文件发送到machineB。我只是想知道是否可以这样做而不必先将数据保存到文件中(machineA)。

任何解决方案(python、bash shell、其他想法)都将不胜感激。

【问题讨论】:

    标签: python linux bash shell


    【解决方案1】:

    这是nc (netcat) 的作品...在machineB 上你做

    nc -l 12345 | processing_program
    

    此命令将启动 netcat 以“侦听模式”等待连接。建立连接后,来自网络的内容将被发送到标准输出,而发送到标准输入的内容将被发送回连接的任何人。

    之后你继续machineA 并运行

    generating_program | nc machineB 12345
    

    这将指示 netcat 开始与machineB(端口 12345)的连接,并通过线路发送从 stdin 获得的任何内容。从该连接返回的任何内容都会发送到标准输出。

    【讨论】:

    • 你的答案更好(不需要密码,也不需要运行服务)。
    • 6502:谢谢。 machineB可以同时收听20台机器吗?另外,我必须在machineB 上主动“打开监听端口”吗?
    • 使用该命令machineB 将监听任何连接的人(所以这当然根本不安全......任何没有任何身份验证的互联网上的人都可以使用@987654331 向processing_program 发送数据@如果可以到达那台机器!)。 nc 在客户端关闭连接后终止,因此您最终需要在循环中重新运行该命令。如果对于“打开监听端口”,您的意思是在防火墙中打一个洞或在路由器中定义虚拟服务器路径,答案是肯定的。 nc 只是在指定端口上进行 TCP 侦听。
    【解决方案2】:

    使用Netcat tool,您可以轻松地将数据从一台机器传送到另一台机器。

    【讨论】:

      【解决方案3】:

      您可以在不同的级别上进行 - 这里有几个选项

      1. 使用 ssh 进行管道传输 我的程序 | ssh remotemachine myotherprog
      2. 使用 nfs(如果转到文件
      3. 使用 netcat (nc)
      4. 使用节俭之类的东西

      这取决于解决方案需要有多稳固和持久

      【讨论】:

        【解决方案4】:

        大概是这样的

        myPythonScript | ssh user@machine "sh -c 'cat >myfile.txt'"
        

        警告:完全从我的脑海中抽出,未经测试!

        【讨论】:

          【解决方案5】:

          在机器A上:

          python script-on-machineA.py --options | ssh machineB tee /file/on/machine/B.txt
          

          或者,在机器 B 上:

          ssh machineA python /path/to/script-on-machineA.py --options | cat > /file/on/machine/B.txt
          

          【讨论】:

          • 这会很好,因为我可以轻松地在机器之间进行 SSH。
          猜你喜欢
          • 1970-01-01
          • 2012-09-06
          • 2017-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-03
          • 1970-01-01
          相关资源
          最近更新 更多