linux数据备份、复原 | dump restore指令

摘要

介绍linux如何备份、恢复数据

一、基本介绍

之前可以使用虚拟机做备份

实体机无法做快照,如果系统出现异常或者数据损坏,后果严重,要重做系统,还会造成数据丢失。所以我们可以使用备份和恢复技术

linux的备份和恢复很简单,有两种方式:

把需要的文件(或者分区)用TAR打包就行,下次需要恢复的时候,再解压开覆盖即可

使用dump和restore命令

二、备份 | dump指令

1. 基本介绍 | 注意

dump支持分卷和增量备份(所谓增量备份是指备份上次备份后修改/增加过的文件,也称差异备份).

dump的增量备份仅仅适用于分区,也就是直接挂在分区下的目录;但是不适用于普通的目录和文件,它们只能简单地备份

2. 指令和选项

指令

功能

说明

选项

yum install dump

dump [-cu] [-123456789] [-f <备份后文件名> [-T <日期>] [要备份的目录或文件系统]

dump [] -wW

dump -0uj -f /opt/boot.bak0.bz2 /boot/

选项

说明

-c

创建新的归档文件,并将由一个或多个文件参数所指定的内容写入归档文件的开头。

-0123456789

备份的层级。0为最完整备份,会备份所有文件。若指定0以上的层级,则备份至上一次备份以来修改或新增的文件,到9后,可以再次轮替

-f <备份后文件名>

指定备份后文件名

-j

调用bzlib库压缩备份文件,也就是将备份后的文件压缩成bz2格式,让文件更小

-T <日期>

指定开始备份的时间与日期

-u

备份完毕后,在/etc/dumpdares中记录备份的文件系统,层级,日期与时间等。

-t

指定文件名,若该文件已存在备份文件中,则列出名称

-W

显示需要备份的文件及其最后一次备份的层级,时间,日期

-w

与-W类似,但仅显示需要备份的文件。

3. 演示

(1) 备份分区

也就是备份与分区挂载的目录

备份/boot/目录

然后在/boot/目录添加文件

再次备份

备份 /boot/目录

dump -0uj -f /opt/boot.bak0.bz2 /boot/

查看opt目录

ls /opt

在/boot中添加文件

vim /boot/hello.txt

再次备份

dump -1uj -f /opt/boot.bak1.bz2 /boot/

再次查看

ll -h /opt/

虽然只添加了一个txt文件的,但是发现第二层备份的大小还是比较大,这是因为备份文件还要大很多吧

(2) 备份普通目录/文件

如果备份文件或者目录,不再支持增量备份,即只能使用0级别备份

使用dump备份 /etc整个目录(/etc并不挂载到分区上)

dump -0j -f /opt/etc.bak.bz2 /etc/

# dump -1j -f /opt/etc.bak.bz2 /etc/ 这条语句会报错 1

# dump -0ju -f /opt/etc.bak.bz2 /etc/ u这个选项会被忽略

(3) 查看备份信息

指令

功能

说明

选项

dump -W

显示需要备份的文件及其最后一次备份的等级,时间

cat /etc/dumpdates

查看备份时间文件

三、恢复 | restore指令

1. 基本介绍

restore命令用来恢复已备份的文件,可以从dump生成的备份文件中恢复原文件

2. 指令和选项

选项

说明

-C

使用对比模式,将备份的文件与已存在的文件相互对比.

-i

使用交互模式,在进行还原操作时,restors指令将依序询问用户

-r

restore 进行还原模式

-t

查看模式,看备份文件有哪些文件

-f 备份文件

从指定的文件中读取备份数据,进行相应操作

3. 演示

(1) 对比模式

首先更改原先的目录里面的文件

mv /boot/hello.txt /boot/hello100.txt # 改名

然后进行对比

restore -C -f /opt/boot.bak1.bz2 # 应该发现有一处不同

改回去

mv /boot/hello100.txt /boot/hello.txt

然后再次比较

restore -C -f /opt/boot.bak1.bz2

(2) 查看备份里面的文件

就是查看一个备份文件里面有几个文件

restore -t -f boot.bak1.bz2

(3) 还原

还原的时候会还原到当前目录

如果是增量备份,要按照0-9的层次依次还原

restore -r -f /opt/boot.bak0.bz2

restore -r -f /opt/boot.bak1.bz2