Linux之文件与文件系统的压缩,打包,备份

1.  Linux常见的压缩指令

*.Z compress 程序压缩的文件;
*.zip zip 程序压缩的文件;
*.gz gzip 程序压缩的文件;
*.bz2 bzip2 程序压缩的文件;
*.xz xz 程序压缩的文件;
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩
*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩
*.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩

2.  gzip命令

    1.  用法

        -d  解压缩

        -t  检查压缩文件的一致性

        -v  显示压缩时的详细信息

        -#  数字为压缩比,1为最小压缩比,最快;9为最大压缩比,最慢

        默认情况压缩的时候,源文件就被删除了。

    2.  例子  

        gzip -v 源文件 > 目标文件.gz  这样会保留源文件存在

        gzip -d 压缩文件.gz

    3.  查看压缩包的命令

        zcat

        zmore

        zgrep

        zless

3.  bzip2命令

    1.  用法

        -d  解压缩

        -k  保留源文件

        -v   压缩时的压缩比等信息

        -#  数字为压缩比,1为最小压缩比,最快;9为最大压缩比,最慢

    2.  例子

        bzip2 -k 源文件 目标文件.bz2

        bzip2 -d 压缩文件.bz2

    3.  查看压缩包的命令

        bzcat 压缩文件.bz2

4.  xz命令

    1.  用法

        -d  解压缩

        -k  保留源文件

        -v  压缩时的压缩比等信息

        -t   检查压缩包的完整性

        -#  数字为压缩比,1为最小压缩比,最快;9为最大压缩比,最慢

    2.  例子

        xz -d 压缩包.xz

        xz -k 源文件

    3.  查看压缩包的命令

        xzcat

        xzless

        xzmore

        xzgrep

5.  打包命令tar

    -c:建立打包文件

-j:说明此压缩是bzip2的方式,文件名为*.tar.bz2

-z: 说明此压缩是gzip的方式,文件名为:*.tar.gz

-J: 说明此压缩是xz的方式,文件名为:*.tar.xz

-v: 在压缩/解压缩的过程中,将正在处理的文件名显示出来

-t: 只显示文件的名称,这是它与-v的不同之处

-x: 解打包/解压缩的功能

-f filename: 目标文件名

-C(大写):用在解压缩的时候,指定解压缩到的位置。

-p:保留原本文件的属性和权限,常用于备份

6.  下面是具体的实例

    1.  压缩/etc目录到/home/kanhuigai下,压缩后的目录名为etc_backup.tar.gz和etc_backup.tar.bz2,分别采用两种压缩方法。具体如下:

         查看压缩文件里面的文件名称:

        tar –jtv –f etc_backup.tar.bz2 显示bz2压缩文件包含的文件名称,大小,权限等信息

        tar –ztv –f etc_backup.tar.gz显示gz压缩文件包含的文件名称,大小,权限等信息。

    2.  解压缩文件:

        tar –jxv –f /home/kanhuigai/etc_backup.tar.bz2 –C /home/kanhuigai2

        tar –zxv –f /home/kanhuigai/etc_backup.tar.gz –C /home/kanhuigai2

    3.  解压缩文件包中的某一个文件

        先查看被解压缩的文件的名称,使用命令:

        tar –jtv –f 压缩包名

        解压缩具体某一个文件,使用命令:

        tar –jxv –f 压缩包名 待解包的文件名

        tar -zxvf /opt/soft/test/log30.tar.gz log2013.log

    4.  打包某个目录,但是不包含下面的某个文件或者目录

        tar  –jcv  –f  *.tar.bz2  --exclude=文件或者目录名称 被打包的目录名

        tar -zcv -f zabbix.tar.gz --exclude=/tmp/zabbix-2.2.2/bin /tmp/llzabbix-2.2.2  单个子目录排除

        sudo tar -zcv -f zabbix.tar.gz --exclude=/tmp/zabbix-2.2.2/bin --exclude=/tmp/zabbix-2.2.2/build /tmp/zabbix-2.2.2  多个子目录排除

7.  文件系统的备份与还原

    1.  xfsdump

        完整备份

          xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot

        差异备份

          xfsdump -l 1 -L boot_2 -M boot_2 -f /srv/boot.dump1 /boot

    2.  xfsrestore

        观察备份内容

          xfsrestore -I

        还原完整备份

          xfsrestore -f /srv/boot.dump -L boot_all /boot  覆盖原来的/boot

          xfsrestore -f /srv/boot.dump -L boot_all /tmp/boot  还原到其它目录下

        还原差异备份

          xfsrestore -f /srv/boot.dump1 /tmp/boot

          互相模式

          xfsrestore -f /srv/boot.dump1 -i /tmp/boot  进入互动模式,可以有选择的还原文件和目录 

8.  其它备份工具

      1.  dd命令

          1.  备份/etc/passwd到另外一个文件中

              dd if=/etc/passwd of=/tmp/passwd.back

          2.  备份文件,并指定block和count

              dd if=/dev/zero of=/srv/loopdev bs=1M count=512

 

      

posted @ 2019-06-17 14:46  奋斗史  阅读(773)  评论(0)    收藏  举报