tar配合ssh使用总结
有个朋友问到,如何在空间不是很富裕的情况,把文件从一个分区tar到另外一个分区,其实还有很多办法的,使用管道命令就可以实现
如:
#tar -cvf- home |(cd /datavg35; tar -xvf -) ---把home文件打包并解压到/datavg35下;
这里我们又想到另外一个问题,把tar的文件传输到另外一台服务器上(个人感觉这个用处对于大的文件,还是写个shell,先tar在ftp/scp).对于一些小文件且目标服务器空间不足的情况下也是可以考虑使用的.
--A机为源服务器,B机为目标服务器
/* 把A机的t11.txt 打包并传送到B机上 */
[root@erpdemo tmp]# tar cvfz - t11.txt|ssh erpprd "cat >t11.tar.gz"
t11.txt
/* 把A机的t11.txt 打包并传送到B机上的/tmp目录下 */
[root@erpdemo tmp]# tar cvfz - t11.txt |ssh erpprd "cd /tmp;cat >t11.tar.gz"
t11.txt
/*将A机的t11.txt压缩文件,复制到B机并解压缩*/
[root@erpdemo tmp]#zcat dir.tar | ssh 192.168.0.116 "cd /opt; tar -xf -"
/*在A机上一边打包t11.txt文件,一边传输到B机并解压*/
[root@erpdemo tmp]# tar cvfz - t11.txt |ssh erpprd "cd /tmp; tar -xvfz -"
在补充几个:
传输到远程:tar czf - file| ssh server "tar zxf -"
压缩到远程:tar czf - file| ssh server "cat > file.tar.gz"
解压到远程:ssh server "tar zxf -" < file.tar.gz
解压到本地:ssh server "cat file.tar.gz" | tar zxf -