使用管道一次完成Tar和Rsync

时间:2018-09-07 11:58:58

标签: linux pipe tar rsync

我想用tar命令创建一个压缩文件,然后将输出文件rsync到远程计算机。 我尝试了以下方法:

tar -cjvf etc.tar.bz /etc | rsync -r &1 user@remoteip:/home/user/

tar -cjvf etc.tar.bz /etc | rsync -r '{}' user@remoteip:/home/user/

tar -cjvf etc.tar.bz /etc | rsync -r '{}' 'user@remoteip:/home/user/'

它们都不起作用。请告诉我该怎么做。

谢谢。

1 个答案:

答案 0 :(得分:2)

您正在将tar的结果传递给rsync。不起作用。 您可以尝试:

tar -cjvf etc.tar.bz /etc ; rsync etc.tar.bz user@remoteip:/home/user/

或者,如果您直接通过网络发送文件:

tar cjvf - /etc | ssh user@remoteip "cat > /home/user/etc.tar.bz"