工作中以前经常有遇到这种情况。
例如:工作环境中的机器A可以访问机房B,也可以访问C,但是B和C之间是不通的。此时,经常会有把B中的文件转到C中的需求。
最平常的做法,就是A scp B:~/foobar ./foobar; 再 scp foobar C:~/。
如果文件很大,这样的做法会令人难以接受。如果不要让文件在工作机器A中存下来,而是直接发到C中,那就好了。
这时就要用到linux中的管道了。
ssh B_server "tar czf - foobar/*" | ssh C_server "tar xzf - -C ~/data/"
这样做就直接把B机器上的文件直接发到C机器了。
没有评论:
发表评论