如何通过ssh发送三个数据管道?

时间:2010-12-01 00:25:25

标签: linux bash pipe

我在远程主机上有一个bash脚本,它在fd = 3上生成大量数据,并在stdout和stderr上生成一些可能有趣的数据。我想:

  1. 将stdout和stderr记录到本地计算机上的文件中。
  2. 将fd = 3上的数据写入本地计算机上的stdout。
  3. 如果我的大脚本是本地的,那么如何做到这一点:

    
    exec 3> >(cat)
    ./big_script.sh -o /dev/fd/3 2>&1 >big_script.log
    exec 3>&-
    

    但是,我想在远程计算机上运行big_script.sh并将所有三个管道(fd = 1,fd = 2和fd = 3)作为单独的ssh程序出来。最好的方法是什么?

3 个答案:

答案 0 :(得分:2)

nc(netcat)和隧道?你可以通过这种方式在你的网上制作一种日志收音机!

答案 1 :(得分:0)

SSH只打开一个tty,因此您只需获得包含所有数据的单个流。你不能分辨对方看到的stdout和stderr是什么。

答案 2 :(得分:0)

您可以登录远程主机上的文件,然后ssh remote tail -f本地计算机上的每个日志文件。