文件打包及压缩

(1)tar常用选项

    c       //创建文件
    v       //打印详细信息
    f       //指定文件名
    z       //调用gzip压缩
    j       //调用bzip2压缩
    J       //调用xz压缩
    t       //查看压缩文件
    x       //解压

(2)打包压缩,建议对整个目录打包,而不是对目录下每个文件进行打包

tar czf etc1-gzip.tar.gz /etc               //对/etc/目录进行打包压缩,调用gzip压缩
tar cjf etc1-bzip2.tar.gz /etc              //对/etc/目录进行打包压缩,调用bzip2压缩
tar cJf etc1-xz.tar.gz /etc                 //对/etc/目录进行打包压缩,调用xz压缩
注意:如果打包的目录是绝对路径会把路径的/去掉
# ll etc*
-rw-r--r-- 1 root root 15703277 May 11 16:48 etc1-bzip2.tar.gz
-rw-r--r-- 1 root root 17931062 May 11 16:47 etc1-gzip.tar.gz
-rw-r--r-- 1 root root 12649124 May 11 16:48 etc1-xz.tar.gz
#file etc1-xz.tar.gz   查看文件类型
总结:bzip2压缩速度最快,压缩比最小;xz压缩速度最快,压缩比最大

(3)解压解包

tar -tf etc1-bzip2.tar.gz               //查看压缩文件内容
tar -xvf etc1-bzip2.tar.gz              //解压压缩包
tar -xf etc1-bzip2.tar.gz -C /var/tmp   //-C重定向到/var/tmp目录下
tar -xf etc1-bzip2.tar.gz 
uzip xxx.zip                            //解压zip文件               

(4)tar实战用法

1)mysql物理备份和恢复1

#tar -czf /backup/mysql_$(date +%F).tar.gz /var/lib/mysql       //打包压缩
# tar tf /backup/mysql_2018-05-11.tar.gz            //如果打包压缩的时候目录是全路径,会默认把根/去掉
var/lib/mysql/
#rm -rf /var/lib/mysql*                             //删除数据目录的所有内容
#tar xf /backup/mysql_2018-05-11.tar.gz -C /        //打包压缩的时候目录是全路径(去掉了根),恢复的时候加上/即可,一定要注意,非常棒

2)mysql物理备份和恢复2

#cd /var/lib/mysql
#tar czf /backup/mysql_$(date +%F).tar.gz *
#tar tf /backup/mysql_2018-05-11.tar.gz | head -1       //打包的时候使用的是相对路径
auto.cnf
#rm -rf /var/lib/mysql*
#tar xf /backup/mysql_2018-05-11.tar.gz -C /var/lib/mysql       //所以恢复的时候需要使用绝对路径

3)本机拷贝海量小文件方式

tar -czf - /etc | tar -xzf - -C /tmp                //创建压缩文件放到内存通过管道解压到/tmp目录下

4)host A拷贝文件(海量文件)到host B

常规方法:scp -r /etc 192.168.111.152:/tmp
建议方法:
    host B(关闭防火墙或允许执行端口) :  nc -l 8888 | tar -xzf - -C /tmp    //host B 打开一个套接字,接收这个套接字的压缩文件解压到/tmp目录
    host A : tar -czf - /etc | nc 192.168.111.152 8888                       //host A 压缩/etc目录通过套接字传给192.168.111.152这个主机

猜你喜欢

转载自www.cnblogs.com/lovelinux199075/p/9030646.html