在Linux操作系统中,最简单的文件和目录备份工具就是cp(复制)命令。但是当需要备份的文件、目录数量较多时,仅仅使用cp命令就显得“力不从心”,并且备份的文件数量及其所占用的磁盘空间都可能对服务器产生不小的压力。因此,有必要对需要备份的数据进行归档和压缩。

Linux操作系统中比较常用的压缩命令工具包括gzip、bzip2,最常用的归档命令工具为tar。使用tar命令可以通过特定选项自动调用gzip和bzip2程序,以完成归档、压缩的整套流程,当然也可以完成解压、释放已归档的整套流程。

gzip和gunzip命令

使用gzip制作的压缩文件默认的扩展名是“.gz”。制作压缩文件时,使用“-g”选项可以提高压缩的比率,但文件较大时会需要更多的时间。使用这种压缩方式将不会保留原文件

[root@localhost /]# ls -lh mkfile*
-rw-r--r--. 1 root root **10M** 6月  30 23:10 mkfile
[root@localhost /]# gzip mkfile
[root@localhost /]# ls -lh mkfile*
-rw-r--r--. 1 root root **10K** 6月  30 23:10 mkfile.gz

当需要解压缩经gzip压缩的文件时,只需带“-d”选项的gzip命令即可,或者直接使用gunzip命令。

[root@localhost /]# gzip -d mkfile.gz
或者
[root@localhost /]# gunzip mkfile.gz

bzip2和bunzip2命令

bzip2和bunzip2命令的用法和gzip和gunzip命令基本相同,唯一不同:使用bzip2制作的压缩文件默认的扩展名是“.bz2”.同样也不会保留原文件。

[root@localhost /]# ls -lh mkfile 
-rw-r--r--. 1 root root **10M **6月  30 23:10 mkfile
[root@localhost /]# bzip2 -9 mkfile
[root@localhost /]# ls -lh mkfile.bz2 
-rw-r--r--. 1 root root** 49** 6月  30 23:10 mkfile.bz2

解压时:

[root@localhost /]# bzip2 -d mkfile.bz2 
或者
[root@localhost /]# bunzip2 mkfile.bz2 

使用tar命令归档和释放

tar命令主要用于对目录和文件进行归档,在实际的本分工作中,通常在归档的同时也会将包文件进行压缩(使用刚才介绍的命令),以节省磁盘空间。使用tar命令时,选项前的“-”可以省略。常用的选项有:
使用tar命令进行备份和恢复文档_第1张图片

(1)制作备份文件

需要对制作的归档文件进行压缩,可以通过“-z”和“-j”选项自动调用压缩工具进行压缩。在备份恢复目录或文件时,最好先将工作目录切换到目标目录或文件所在的路径下。在执行备份命令时使用相对路径。

[root@localhost /]# tar zcvf sysfile.tar.gz etc 
[root@localhost /]# ls -lh sysfile.tar.gz 
-rw-r--r--. 1 root root 143M 6月  30 23:54 sysfile.tar.gz

(2)恢复数据

[root@localhost /]# tar zxf sysfile.tar.gz -C /etc

制作“.tar.bz2”格式的压缩包

将“-z”选项改为“-j”即可。

(1)制作备份文件

[root@localhost etc]# tar jcvf /userhome.tar.bz2 passwd shadow
[root@localhost etc]# ls -lh /userhome.tar.bz2 
-rw-r--r--. 1 root root 1.5K 7月   1 00:00 /userhome.tar.bz2

(2)恢复数据

[root@localhost /]# tar jxf userhome.tar.bz2 -C /etc