2009年2月26日星期四

linux中管道使用一例

工作中以前经常有遇到这种情况。
例如:工作环境中的机器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机器了。







没有评论: