将 SSH 命令的结果通过管道传送到本地保存

将 SSH 命令的结果通过管道传送到本地保存

我在想要运行的脚本中有以下命令,该命令将愉快地将所有远程命令的结果输出到控制台上的 STDOUT。

ssh -t my-server1.my-domain.net  << EOF
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF 

我将如何将此输出的结果保存到我的本地计算机上。我尝试过使用普通管道三通或使用例如将流重定向到文件>

ssh -t my-server1.my-domain.net  << EOF
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF 2&>1 test.txt

或者

ssh -t my-server1.my-domain.net  << EOF
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF 2&>1 | tee test.txt

我希望看到命令在远程计算机上运行、输出到控制台并写入本地计算机上的文件。

答案1

这可以通过在命令所在的同一行ssh而不是在 ssh 命令之后进行管道传输来实现。

要通过管道连接到STDOUTtest.txt,您可以使用:

ssh -t my-server1.my-domain.net  << EOF | tee test.txt
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF

要仅输出到test.txt(而不是STDOUT),您可以使用:

ssh -t my-server1.my-domain.net  << EOF > test.txt
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF

相关内容