# cd /data // data目录下有我们要拷贝的目标文件目录 test
# tar cvf - test| ssh 10.0.1.11 "cd /copy1/; tar xvf -" //首先将要拷贝的目录test打包,"-" 代表标准输出,然后再ssh 到目标主机 10.0.1.11 ,运行相应的命令。其中tar xvf - 意思是,将前面的标准输出内容作为解包的对象。
总结:其实就是想拷贝的目录先打包,然后将打包好的文件拷贝到目标主机,最后在目标主机上解包。只不过,我们用一条命令实现了边打包边解包的过程。
# tar cvf - test| ssh 10.0.1.11 "cd /copy1/; tar xvf -" //首先将要拷贝的目录test打包,"-" 代表标准输出,然后再ssh 到目标主机 10.0.1.11 ,运行相应的命令。其中tar xvf - 意思是,将前面的标准输出内容作为解包的对象。
总结:其实就是想拷贝的目录先打包,然后将打包好的文件拷贝到目标主机,最后在目标主机上解包。只不过,我们用一条命令实现了边打包边解包的过程。
0
第一次接触这个命令是我们老总演示给看的,当时是这样的,一台老工作站,一台新工作站,要把老工作站的数据移到新机器上,然后老总给我们演示了tar这个牛叉的用法,不过那次之后只是把命令记录下来了,还没来得及实践。这个命令非常实用,点赞了。
0
[root@fxq-0 ~]# mkdir test{1..10}
[root@fxq-0 ~]# ls
anaconda-ks.cfg test1 test2 test4 test6 test8
test0 test10 test3 test5 test7 test9
[root@fxq-0 ~]# tar -zcvf - test* |ssh 192.168.42.181 "cd /tmp/;tar -zxvf -"
test0/
test1/
test10/
test2/
test3/
test4/
test5/
test6/
test7/
test8/
test9/
test0/
test1/
test10/
test2/
test3/
test4/
test5/
test6/
test7/
test8/
test9/
[root@fxq-0 ~]# ssh 192.168.42.181
Last login: Thu Aug 17 04:20:20 2017 from 192.168.42.180
[root@fxq-1 ~]# ls /tmp
test0 test10 test3 test5 test7 test9
test1 test2 test4 test6 test8
[root@fxq-1 ~]#
编辑回复