美文网首页
4-12 Linux中的打包和备份的归档工具 --- tar(压

4-12 Linux中的打包和备份的归档工具 --- tar(压

作者: 捌千里路雲和月 | 来源:发表于2021-10-07 22:34 被阅读0次
    • tar 的打包和压缩实际上是相互依存的。经过上一节 4-11 tar 打包的学习再接触这节的压缩,其实很简单。实际上就是在打包命令前加上对应的压缩字符,就代表采用什么压缩方式进行打包压缩。

    • 概念上来说,打包 --- 正如上节 4-11 的测试可以把很多目录、很多文件打包成一个总文件。压缩 --- 则是将大文件通过压缩的过程令其变小,打包和压缩可以一并进行。很多场景是把一堆文件打包成一个大包(总文件)。然后对大包进行压缩,提高发送的效率。

    • tar 支持三种不同的压缩方式:
      gzip:应用广泛,压缩速度快,压缩率较差。
      bzip2:压缩速度和压缩率都是中规中矩。压缩速度较 gzip 慢,压缩率较 gzip 高。
      xz:压缩速度慢,压缩率佳。压缩速度较 gzip、bzip2 慢,压缩率比 gzip、bzip2 高。

    • 三种压缩方式的参数选项及命名规范:
      z:gzip、filename.tar.gz
      j:bzip2、filename.tar.bz2
      J:xz、filename.tar.xz

    • 4-12 内容:
      学习 gzip、bzip2 和 xz 的压缩操作,进行三种压缩方式的对比。

    • 1、gzip、bzip2 和 xz 三种压缩方式的单项目录压缩对比。

    • 操作步骤:
      1)、首先搭建测试框架。test 目录下创建 SRC 目录,源目录的存放目录。然后创建 backups_tar 目录,压缩包的存放目录。

    [root@localhost ~]# cd test/    ## 切换到 test 目录
    [root@localhost test]# 
    [root@localhost test]# mkdir SRC              ## 创建 SRC 和 backups_tar 目录
    [root@localhost test]# mkdir backups_tar
    [root@localhost test]# 
    [root@localhost test]# tree    ## test 的目录结构
    .
    ├── backups_tar
    └── SRC
    
    2 directories, 0 files
    [root@localhost test]# 
    
    
    • 2)、同步 / 根目录的 etc 目录到 SRC 目录。(或者 cp 复制也可以)
    [root@localhost test]# rsync -a /etc SRC/    ## 同步 / 根目录的 etc 目录到 SRC 目录
    [root@localhost test]# 
    [root@localhost test]# cd SRC/    ## 切换到 SRC
    [root@localhost SRC]# 
    [root@localhost SRC]# ll    ## 已经有 etc目录
    total 12
    drwxr-xr-x. 75 root root 8192 Sep 17 20:06 etc
    [root@localhost SRC]# 
    
    
    • 3)、分别用 gz、bz2 和 xz 三种方式压缩 etc 目录到 backups_tar 目录下进行对比。
    • 执行 gz 压缩 etc 目录到 backups_tar。
    [root@localhost SRC]# ls
    etc
    [root@localhost SRC]# tar zcvf ../backups_tar/etc.tar.gz etc/
    
    
    gzip 压缩命令图解(路径仅供参考,以实际情况为准)
    • 执行 bz2 压缩 etc 目录到 backups_tar 的时候可能会出现 ' tar (child): bzip2: Cannot exec: No such file or directory ' 的提示。这是因为系统没有安装 bzip2,只需要安装上就可以。
    [root@localhost SRC]# tar jcvf ../backups_tar/etc.tar.bz2 etc/
    
    ## 提示没有 bzip2 的文件和目录。
    tar (child): bzip2: Cannot exec: No such file or directory      
    tar (child): Error is not recoverable: exiting now
    etc/
    etc/favicon.png
    etc/grub2.cfg
    etc/init.d
    etc/localtime
    etc/mtab
    etc/os-release
    etc/rc.local
    etc/rc0.d
    etc/rc1.d
    etc/rc2.d
    etc/rc3.d
    etc/rc4.d
    etc/rc5.d
    etc/rc6.d
    etc/redhat-release
    etc/system-release
    etc/NetworkManager/
    etc/NetworkManager/conf.d/
    etc/NetworkManager/dispatcher.d/
    [root@localhost SRC]# 
    
    
    • 安装 bzip2
    [root@localhost SRC]# yum -y install bzip2
    
    
    • 执行 bz2 压缩 etc 目录到 backups_tar。
    [root@localhost SRC]# tar jcvf ../backups_tar/etc.tar.bz2 etc/
    
    
    bzip2 压缩命令图解(路径仅供参考,以实际情况为准)
    • 执行 xz 压缩 etc 目录到 backups_tar。
    [root@localhost SRC]# tar Jcvf ../backups_tar/etc.tar.xz etc/
    
    
    xz 压缩命令图解(路径仅供参考,以实际情况为准)
    • 4)、切换到 backups_tar 目录对比三种压缩方式的情况。
      速度:gz 最快、xz 最慢、bz2 中规中矩。
      压缩率:xz 最高、gz 最低、bz2 中规中矩。
    [root@localhost SRC]# 
    [root@localhost SRC]# cd ../backups_tar/
    [root@localhost backups_tar]# 
    [root@localhost backups_tar]# ll -h
    total 28M
    -rw-r--r--. 1 root root 9.5M Sep 19 01:50 etc.tar.bz2    ## bz2 压缩率 9.5M,中规中矩。
    -rw-r--r--. 1 root root  11M Sep 19 00:44 etc.tar.gz    ## gz 压缩率 11M,最低。
    -rw-r--r--. 1 root root 7.1M Sep 19 01:46 etc.tar.xz    ## xz 压缩率 7.1M,最高。
    [root@localhost backups_tar]# 
    
    

    • 2、gzip、bzip2 和 xz 三种压缩方式的多项目录压缩对比。
      1)rsync 从 /etc 目录下同步 systemd、yum、yum.repos.d、yum.repos.d.aliyunbak、terminfo 目录到 SRC 目录。现在 SRC 目录已经有多个目录。
    [root@localhost SRC]# cd /etc/    ## 切换到 etc 目录
    ## 同步多个目录到 SRC 目录
    [root@localhost etc]# rsync -a systemd yum yum.repos.d yum.repos.d.aliyunbak terminfo /root/test/SRC/
    [root@localhost etc]# 
    [root@localhost etc]# cd
    [root@localhost ~]# cd test/SRC/
    [root@localhost SRC]# 
    [root@localhost SRC]# ls    ## SRC 目录下已经有多个目录
    etc  systemd  terminfo  yum  yum.repos.d  yum.repos.d.aliyunbak
    [root@localhost SRC]# 
    
    
    • 2)、执行 gz 压缩当前目录所有内容到 backups_tar 目录。
    [root@localhost SRC]# ls
    etc  systemd  terminfo  yum  yum.repos.d  yum.repos.d.aliyunbak
    [root@localhost SRC]# 
    [root@localhost SRC]# tar zcvf ../backups_tar/file.tar.gz *
    
    
    gzip 压缩命令图解(路径仅供参考,以实际情况为准)
    • 3)、执行 bz2 压缩当前目录所有内容到 backups_tar 目录。
    [root@localhost SRC]# tar jcvf ../backups_tar/file.tar.bz2 *
    
    
    bzip2 压缩命令图解(路径仅供参考,以实际情况为准)
    • 4)、执行 xz 压缩当前目录所有内容到 backups_tar 目录。
    [root@localhost SRC]# tar Jcvf ../backups_tar/file.tar.xz *
    
    
    xz 压缩命令图解(路径仅供参考,以实际情况为准)
    • 5)、ll 查看 backups_tar 目录对比三种压缩方式的情况。
      速度:gz 最快、xz 最慢、bz2 中规中矩。
      压缩率:xz 最高、gz 最低、bz2 中规中矩。
    [root@localhost SRC]# ll -h ../backups_tar/
    total 28M
    -rw-r--r--. 1 root root 9.5M Sep 20 02:10 file.tar.bz2    ## bz2 压缩率 9.5M,中规中矩。
    -rw-r--r--. 1 root root  11M Sep 20 02:02 file.tar.gz     ## gz 压缩率 11M,最低。
    -rw-r--r--. 1 root root 7.1M Sep 20 02:11 file.tar.xz    ## xz 压缩率 7.1M,最高。
    [root@localhost SRC]# 
    
    
    • 综上测试:
    • 梳理了打包和压缩的概念。
    • 通过操作知道打包压缩可以一并执行。
    • 了解 gzip、bzip2 和 xz 三种不同的压缩方式。
    • 单目录和多目录的打包压缩实操,了解操作流程。
    • 对比了 gzip、bzip2 和 xz 三种不同的压缩方式特性。
    • 如遇到需要压缩的数据分布比较广,可以先把需要压缩的数据集合到一个目录内,再对集合的目录进行打包 或 压缩。

    相关文章

      网友评论

          本文标题:4-12 Linux中的打包和备份的归档工具 --- tar(压

          本文链接:https://www.haomeiwen.com/subject/miulgltx.html