每天一点Linux-05tar的使用
打包压缩
建议针对目录
打包:将多个文件合并为一个文件,但是文件大小不变(在Linux中叫归档)
压缩:将打包后的一个文件使用算法减小文件的大小
linux软件下没有rar包,在Linux处理rar包时一般将rar包在windows上减压后上传或者直接打包问zip包。
打包,压缩
以下是将etc文件夹分别使用不同的压缩算法进行打包并为压缩包进行命名,压缩算法由上至下压缩越能力变强。(以下对压缩包的命名只是一个命名没有特殊意义)
[root@ecs-ea9d ~]# tar -czf etc1.tar.gz /etc //-z 调用gzip
[root@ecs-ea9d ~]# tar -cjf etc2.tar.bz2 /etc //-j 调用bzip2
[root@ecs-ea9d ~]# tar -cJf etc3.tar.xz /etc //-J 调用xz
[root@ecs-ea9d ~]# ll -h etc*
-rw-r–r–. 1 root root 8.7M 3月 12 00:08 etc1.tar.gz
-rw-r–r–. 1 root root 7.5M 3月 12 00:08 etc2.tar.bz2
-rw-r–r–. 1 root root 4.8M 3月 12 00:09 etc3.tar.xz
cf
解压,解包
默认减压到当前目录
[root@ecs-ea9d ~]# tar -tf sys.tar.xz
[root@ecs-ea9d ~]# tar -xzvf etc1.tar.gz
[root@ecs-ea9d ~]# tar -xvf etc1.tar.gz //无需指定解压工具,tar会自动判断
[root@ecs-ea9d ~]# tar -xvf etc2.tar.bz2 -C /tmp //-C重定向到//tmp目录
[root@ecs-ea9d ~]# tar xf etc3.tar.xz
xf
解压zip
[root@ecs-ea9d ~]# unzip xxx.zip
实例
案例1:mysql物理备份及恢复
[root@localhost ~]# tar -cJf /backup/mysql.tar.xz /var/lib/mysql
[root@localhost ~]# tar -xf /backup/mysql.tar.xz -C /
从根开始打包(解压到根下即可),解包时只需要在前面加/即可
案例2:mysql物理备份及恢复
[root@localhost ~]# cd /var/lib/mysql
[root@localhost mysql]# tar -cJf /backup/mysql.tar.xz *
[root@localhost mysql]# tar -xf /backup/mysql.tar.xz -C /var/lib/mysql
并不是从根下进行打包。
案例3:host A /etc (海量小文件) ——–> host A /tmp
[root@localhost ~]# tar -czf - /etc | tar -xzf - -C /tmp
首先将/etc打包压缩到内存中(没有对压缩包进行命名用-代替了命名减少了对压缩包写到新磁盘的时间),通过管道的方式将内存中压缩包读取到/tmp
案例4:host A /etc (海量小文件) ——–> host B /tmp
常规方法:
[root@localhost ~]# scp -r /etc 172.16.20.21:/tmp
建议方法:
host B 监听端口
[root@hostb ~]# systemctl stop firewalld.service //临时关闭防火墙
[root@hostb ~]# nc -l 8888 | tar -xzf - -C /tmp
host A
[root@localhost ~]# tar -czf - /etc | nc 172.16.20.21 8888
tar: Removing leading `/‘ from member names
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2924854739@qq.com
文章标题:每天一点Linux-05tar的使用
本文作者:DROBP
发布时间:2019-08-14, 16:21:22
最后更新:2019-08-15, 19:45:24
原始链接:https://DROBP.github.io/2019/08/14/每天一点Linux-05tar的使用/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。