通过ssh发送tar输出和多个命令

时间:2015-06-18 08:23:19

标签: bash ssh

我想传递一个tar命令和多个命令的输出,这些命令通过ssh处理tar流......这样的事情

tar -zcf - foo | ssh $host << EOF
tar -xf -
do-something-with-foo
do-other-things
EOF

不起作用,但这有可能吗?

1 个答案:

答案 0 :(得分:1)

将所有内容包装在您传递给远程主机的生成脚本中。

{
        echo 'uudecode -o- <<EOT | tar -xzf-'
        tar -czf- foo | uuencode -m foo
        echo EOT
        echo do-something-with-foo
        echo do-other-things

} | ssh -T $host

echo输出将在远程主机tar | uuencode上运行 在本地运行。 uuencode的目的是让我们可以将输出包装到远程端的heredoc上,从而避免了严重的文件描述符杂乱的需要。