一:概述

在重装Windows系统时会把重要的数据备份,在Linux中,则是通过在系统中或远程计算机硬件中创建文件或目录的备份来保证文件和目录的安全。当文件和目录丢失、误删或损坏时,可以使用备份的数据来恢复这些文件,这种操作在管理系统中的重要文件时非常有用。

二:Linux中备份系统数据

为了保证系统中文件和目录的安全,我们可以将多个文件合并一个文件并另存为备份数据。将多个文件合并为一个数据称为归档文件,归档的目的就是方便备份、还原及文件的传输操作。通过使用管理归档文件的命令可以创建、压缩及解压缩归档文件。

Linux系统中的标准归档的命令是tar命令,该命令可以归档指定的文件并显示文件信息,然后提取该文件,能够指定多个目录名称。

命令格式:tar [选项] 文件名或目录名

它的常用选项如下表所示:

选项

说明

-c

创建归档文件

-t

显示归档文件的内容

-x

提取归档文件

-f

指定归档文件名

-v

显示详细信息

-j

通过bzip1压缩归档文件

-z

通过gzip压缩归档文件

 使用tar命令创建归档文件并显示其内容,如下图所示。执行ls命令显示当前目录中的文件和目录,然后使用tar命令指定cf选项、文件和目录在当前目录中创建旧文件arch.tar确认创建成功后,使用tar tvf arch.tar命令可以看到该归档文件中的内容列表。

                                          备份和恢复(Ubuntu)_文件系统

   cpio命令也可以创建归档文件,该命令与tar命令使用相同的方式组合多个文件和目录,但tar命令和cpio命令的归档格式不同。使用cpio命令创建归档文件如下图所示:

                                          备份和恢复(Ubuntu)_归档文件_02

    注意:在使用这个命令的时候,需要使用root权限。它的用方法有很对,如果想了解可以使用man tar命令进行查询。

二:Linux系统中的压缩和解压缩命令

  我们在备份数据的时候,如果遇到需要备份的数据很大、会占用大量的磁盘空间的情况,可以使用Linux系统中提供的压缩和解压缩命令。比如zip、compress、gzip和bzip2,这些命令的压缩效率从高到底依次为bzip2、gzip、compress、zip。

下面是格式,如下表所示:

格式

用途

说明

       zip

扩展名

.zip

压缩方式

zip archfile.zip archfile

解压缩

unzip archfile.zip

compress

扩展名

.Z

压缩方式

compress archfile(压缩文件名:archfile.Z)

解压缩

uncompress archfile.Z(compress -d archfile.Z)

gzip

扩展名

.gz

压缩方式

gzip archfile(压缩文件名:archfile.Z)

解压缩

gunzip archfile(gzip -d archfile.gz)

bzip2

扩展名

.bz2

压缩方式

bzip2 archfile(压缩文件名:archfile.bz2)

解压缩

bunzip2 archfile.bz2(bzip -d archfile.bz2)

除了上述压缩命令外,开可以通过tar命令以及相关选项同时执行归档和压缩/解压缩操作。不带选项仅使用tar命令表示对文件进行归档,gzip等命令表示仅压缩(减少数据量、不更改内容)。

使用tar zcfv明令将test1目录中的数据压缩到archfile.tar.gz文件中,如下图所示。通过tar明令的zcvf可以将数据以gzip格式进行压缩。使用rm明令可以一次性删除achfile.tar.gz文件,去掉z选项,tar命令也会自动确定压缩格式并解压缩文件。

                                          备份和恢复(Ubuntu)_文件系统_03

                                          备份和恢复(Ubuntu)_数据_04

  可以通过指定选项和压缩文件名的方式提取tar.gz文件,如下图所示:

                                          备份和恢复(Ubuntu)_文件系统_05

三 复制输入和输出的设备

dd命令是Linux系统中比较实用的命令,它可以指定用于复制输入和输出设备,也就是说使用dd命令可以将磁盘分区中的数据按照原样复制到另一个分区.dd的命令用法比较特殊。通过=来指定文件名或者数据块。。

格式:dd[if=文件名] [of=文件名] [bs=块大小] [count=块数]

dd命令后面可以指定每一个选项和之前命令不一样,如下表所示:

选项

说明

if=文件名

指定输入的文件

of=文件名

指定输出的文件

bs=块大小

指定用于一次读/写的块大小

count=块数

指定要输入的块数

conv=转换选项

指定转换选项,noerror表示即使读取错误也继续

实用dd命令进行数据复制的示例如下:

(1)dd if=/dev/sda of=/dev/sdb bs=4096表示将数据从/dev/sda复制到/dev/sdb中。

(2)dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror表示如果/dev/sda存在问题且存在读取错误,需指定noerror,sysc表示用NULL填充输入块,直到输入缓冲区大小。

(3)dd if=/dev/zero of=dev/sda bs=4096 conv=noerror表示/dev/zero是一个将所有位写入/dev/sda的文件,即原始数据被UNLL覆盖。

(4)dd if=/dev/zero of=file bs =1M count=10表示创建一个10MB的虚拟文件,文件名是fiel。

上面这些/dev/sda这种字段的含义可能现在还不太明白,到分区的时候你就能明白了。

四:数据恢复和备份命令

由于CentOS和Ubuntu中实用的文件系统不一样,支持的数据备份和恢复命令也不一样。CentOS中使用xfs作为标准文件系统,并且还提供了xfsdump命令和xfsrestore命令作为备份和恢复的专用命令,Ubuntu中使用的是ext4作为标准文件系统,提供dump命令作为ext2、ext3、ext4文件系统的备份命令,并提供restore命令用于恢复和备份的命令。

使用数据备份命令之前需要了解系统中的磁盘的使用情况。df命令用于显示文件系统的磁盘使用情况,显示文件系统类型使用-T选项。文件系统的磁盘使用率如下图所示,执行结果如下图所示:

                                          备份和恢复(Ubuntu)_归档文件_06

要备份的文件系统必须未使用,即不能读、写,因此需要切换到救援模式,切换命令为systemctl rescue。

因为我使用的是Ubuntu所以需要使用dump命令用于备份每个ext4文件系统,可以创建完整备份。

格式 dump [选项] 备份目标文件系统

其中dump命令的选项及说明如下表所示:

选项

说明

-f 备份目标

指定备份目标

-I 级别

指定存储级别(0~9)

-p 间隔时间

以指定的间隔时间(秒)显示进度

完全备份是备份文件系统中所有的数据,增量备份仅指备份上次备份的更新。dump命令的备份级别默认为0(完全备份),增量备份级别范围1-9.

dump命令用于还原备份文件,用法如下:

格式:dump [选项] 恢复的转存储源文件系统

下面是restore命令的选项,如下表所示:

选项

说明

-f源

指定来源

-S

指定会话的ID

-L

指定会话标签

-I

显示存储会话ID和会话标签

-r

指定增量备份

CentOS利用xfredump和xfsrerestore命令存储和还原文件。如果CentOS中未安装xfsdump包可以使用yum install xfsdump命令安装。CentOS中的文件备份和恢复同样需要在救援模式下使用xfsdump和xfsrestore命令,在此模式下需要设置root命令。dump命令用于执行完整的备份,restore命令用于备份,这两个命令用法与xfsdump命令和xfsrestore命令相似。

五:远程数据同步工具

如果需要在本机上、本地主机上到远程主机以及远程主机到主机备份和同步。这个命令就是rsync。

命令:resnc [选项] 复制源 复制目标

rsync命令的常用选项如下表所示:

选项

说明

-a、--archive

归档模式,以递归的方式传输文件,等于-rlptgoD

-v、--verbose

详细模式输出,显示传输文件名

-l、--links

保留软连接

-r、--recursive

以递归模式处理目录

-p、--perms

包持权限完整

-t、--times

保留文件的修改时间

-o、--owner

保持文件所有者不变,目标账户为root时有效

-u 、--update

目标文件较新时,不复制

--delete

在源处删除的文件也会在目标处删除

-e、--rsh=COMMAND

指定使用rsh、ssh方式进行数据同步

                                          备份和恢复(Ubuntu)_文件系统_07