我在想要运行的脚本中有以下命令,该命令将愉快地将所有远程命令的结果输出到控制台上的 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 命令之后进行管道传输来实现。
要通过管道连接到STDOUT
和test.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