(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这个主机