1.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 的压缩;

1.1.1 gzip,zcat/zmore/zless/zgrep

  gzip [-cdtv#] 档名

  zcat 档名.gz

  选项与参数:

    -c:将压缩的数据输出到屏幕上,可透过数据流重导向来处理;

    -d:解压缩的参数;

    -t :可以用来检验一个压缩文件的一致性

    -v:可以显示出原文件/压缩文件案的压缩比等信息;

    -#:# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差,-9 最慢,但是压缩比最好!预设是 -6

1.1.2 bzip2,bzcat/bzmore/bzless/bzgrep

  bzip2 [-cdkzv#] 档名

  bzcat 档名.bz2

  选项与参数:

    -c:将压缩的过程产生的数据输出到屏幕上!

    -d:解压缩的参数;

    -k:保留源文件,而不会删除原始的文件;

    -z:压缩的参数(默认值,可不加);

    -v:可以显示出原文件/压缩文件案的压缩比等信息;

    -#:与 gzip 同样的,都是在计算压缩比的参数,-9 最佳,-1 最快!

1.1.3 xz,xzcat/xzmore/xzless/xzgrep

  xz [-dtlkc#] 档名

  xcat 档名.xz

  选项与参数:

    -d:解压缩参数

    -t :测试压缩文件的完整性,看有没有错误

    -l :列出压缩文件的相关信息

    -k:保留原来的文件不删除

    -c:将压缩数据由屏幕上输出

    -#:压缩比参数

1.1.4 打包指令:tar        常用于磁带机的备份

  tar [-z|-j|-J] [cv] [-f 待建立的新档名] filename        打包与压缩

  tar [-z|-j|-J] [tv] [-f 既有的 tar档名]             观察档名

  tar [-z|-j|-J] [xv] [-f 既有的 tar档名] [-C 目录]          解压缩

  选项与参数:

    -c:建立打包文件,可搭配 -v 来查看过程中被打包的档名(filename)

    -t :查看打包文件的内容含有哪些档名,重点在查看【档名】

    -x :解打包或解压缩的功能,可以搭配 -C 在特定目录解开

    -z:透过 gzip 的支持进行压缩/解压缩,此时档名最好为 *.tar.gz

    -j :透过 bzip2 的支持进行压缩/解压缩,此时档名最好为 *.tar.bz2

    -J:透过 xz 的支持进行压缩/解压缩,此时档名最好为 *.tar.xz

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

    -f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项!

    -C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项

    -p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件

    -P:保留绝对路径,亦即允许备份数据中含有根目录存在之意

    --exclude=FILE:在压缩过程中,不要将 FILE 打包

  tar -[-z|-j|-J] xv -f 打包档.tar.bz2 待解开档名

  范例一:解开打包文件内的其中一个文件。

    1、先找到我们要的档名,假设解开 shadow 文件

    tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'

    2、将该文件解开

    tar -jxv -f /root/etc.tar.bz2 etc/shadow 

  范例二:打包某目录,但不含该目录下的某些文件,打包 /etc/ /root 这几个重要目录,却不想打包 /root/etc* 开头的文件,新打包文件放置为 /root/system.tar.bz2(这个文件自己不要打包自己),--exclude 不包含的意思。

    tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.bar.bz2 /etc /root

  范例三:仅备份比某个时刻还要新的文件

    1、先由 find 找出比 /etc/passwd 还要新的文件

    find /etc -newer /etc/passwd

    2、查看 /etc/passwd 文件修改日期

    ll /etc/passwd

    3、使用 tar 来进行打包,并设置日期

    tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2015/06/17" /etc/*

    4、显示出文件

    tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 | grep -v '/$'

  基本名称:tarfile        仅打包后的文件

       tarball        打包压缩后的文件1

1.1.5 XFS 文件系统备份 xfsdump

  xfsdump [-L S_label] [-M M_label] [-l #] [-f 备份档] 待备份资料

  xfsdump -I

  选项与参数:

    -L:xfsdump 会记录每次备份的 session 标头,这里可以填写针对此文件系统的简易说明

    -M:xfsdump 可以记录存储媒体的标头,这里可以填写此媒体的简易说明

    -l :是 L 的小写,就是指定等级有 0~9 共10个等级,预设为 0,即完整备份

    -f :有点类似 tar !后面接产生的文件,亦可接例如 /dev/st0 装置文件名或其他一般文件档名等

    -I :是 i 的大写,从 /var/lib/xfsdump/inventory 列出目前备份的信息状态

  注:

    xfsdump 不支援没有挂载的文件系统备份!

    xfsdump 必须使用 root 权限才能操作(涉及文件系统的关系)

    xfsdump 只能备份 XFS 文件系统

    xfsdump 备份下来的数据(文件或储存媒体)只能让 xfsrestore 解析

    xfsdump 是透过文件系统的 UUID 来分辨各个备份档,因此不能备份两个具有相同 UUID 的文件系统

1.1.6 XFS 文件系统还原 xfsrestore

  xfsrestore -I            用来查看备份文件资料,是 i 的大写

  xfsrestore [-f 备份档] [-L S_label] [-s] 待复原目录    单一文件系统复原

  xfsrestore [-f 备份文件] -r 待复原目录         透过累积备份文件来复原

  xfsrestore [-f 备份文件] -i 待复原目录         进入互动模式

  选项与参数:

    -I:是 i 的大写,可查询备份数据,包括 Label 名称与备份时间

    -f:后面接的就是备份档!

    -L:就是 session 的 label name,可用 -I 查询到的数据,在这个选项后输入

    -s:需要接某特定目录,亦即仅复原某一个文件或目录

    -r:如果是用文件来储存备份数据,那这个就不需要使用。如果是一个磁带内有多个文件,需要这东西来达成累积复原

    -i :进入互动模式,进阶管理员使用

 1.1.7 dd 制作文件/备份文件

  dd if="input_file" of="output_file" bs="block_size" count="number"

  选项与参数:

    if  :就是 input file ,也可以是装置

    of   :就是 output file,也可以是装置

    bs  :规划的一个 block 的大小,若未指定则预设是 512 bytes(一个 sector 的大小)

    count:多少个 bs 的意思