linux知识总结(14):系统备份与恢复
基本介绍
实体机无法做快照,如果系统出现异常或者数据损坏,后果严重,要重做系统,还会造成数据丢失。所以我们可以使用备份和恢复技术
- linux的备份和恢复很简单,有两种方式:
- 把需要的文件(或者分区)用tar打包就行,下次需要恢复的时候,再解压开覆盖即可
- 使用dump和restore命令
安装dump和restore
如果linux上没有dump和restore指令,需要先安装
yum install dump
yum install restore
使用dump完成备份
基本介绍
dump支持分卷和增量备份(所谓增量备份是指备份上次备份后修改/增加过的文件,也称差异备份)。
dump语法说明
dump [-cnu] [-0123456789] [-b <区块大小>] [-B <区块数目>] [-d <密度>] [-f <设备名称>] [-h <层级>] [-s <磁带长度>] [-T <日期>] [目录或文件系统]
dump [-wW]
| 选项 | 功能 |
|---|---|
| -c | 创建新的归档文件,并将由一个或多个文件参数所指定的内容写入归档文件的开头。 |
| -0123456789 | 备份的层级。0为最完整备份,会备份所有文件。若指定0以上的层级,则备份至上一次备份以来修改或新增的文件,到9后,可以再次轮替 |
| -f <备份后文件名> | 指定备份后文件名 |
| -j | 调用bzlib库压缩备份文件,也就是将备份后的文件压缩成bz2格式,让文件更小 |
| -T <日期> | 指定开始备份的时间与日期 |
| -u | 备份完毕后,在/etc/dumpdares中记录备份的文件系统,层级,日期与时间等。 |
| -t | 指定文件名,若该文件已存在备份文件中,则列出名称 |
| -W | 显示需要备份的文件及其最后一次备份的层级,时间,日期。 |
| -w | 与-W类似,但仅显示需要备份的文件。 |
dump应用案例1
将/boot目录所有内容备份到/opt/boot.bak0.bz2文件中,备份层级为"0"

层级0的备份,大小是158M

dump应用案例2
在/boot目录下拷贝个文件,备份层级为"1” (只备份上次使用层次"0"备份后发生过改变的数据),注意比较看这次生成的备份文件有多大
在boot目录下随便创建一个文件,输入一些内容

第二次备份

可以看到,层级1下备份的文件大小只有12k

- dump命令配合crontab可以实现无人值守备份
dump -W
显示需要备份的文件及其最后一次备份的层级,时间,日期

查看备份时间文件
cat /etc/dumpdates

dump备份文件或者自录
前面我们在备份分区时,是可以支持增量备份的,如果备份文件或目录,不再支持增量备份,即只能使用0级别备份
-
案例,使用dump备份/etc整个目录
使用层级0备份成功
![]()
当使用层级1进行备份时会报错
![]()
-
如果是重要的备份文件,比如数据区,建议将文件上传到其它服务器保存,不要将鸡蛋放在同一个篮子.
使用restore完成恢复
基本介绍
restore命令用来恢复已备份的文件,可以从dump生成的备份文件中恢复原文件
restore基本语法
[restore [模式选项] [选项]]
- 模式选项
下面四个模式,不能混用,在一次命令中,只能指定一种。
| 模式选项 | 功能 |
|---|---|
| -C | 使用对比模式,将备份的文件与已存在的文件相互对比。 |
| -i | 使用交互模式,在进行还原操作时,restore指令将依序询问用户 |
| -r | 进行还原模式 |
| -t | 查看模式,看备份文件中有哪些文件 |
- 选项
| 选项 | 功能 |
|---|---|
| -f <备份设备> | 从指定的文件中读取备份数据,进行还原操作 |
应用案例1
- restore命令比较模式,比较备份文件和原文件的区别
进入/boot目录下,把备份时创建的hello.cpp文件改名成hello1.cpp
![]()
然后比较,匹配失败,没找到原来的hello.cpp
![]()
再把hello1.cpp文件改回hello.cpp
![]()
再次比较,这次没有报错了
![]()
应用案例2
- restore命令查看模式,看备份文件有哪些数据/文件
![]()
应用案例3
- restore命令还原模式,注意细节:如果你有增量备份,需要把增量备份文件也进行恢复,有几个增量备份文件,就要恢复几个,按0123...的顺序来恢复即可。
创建一个临时目录用来测试备份恢复,进入这个目录准备恢复
![]()
先恢复层级0,我们发现并没有hello.cpp文件,所以需要恢复层级1
![]()
恢复层级1,可以看见hello.cpp文件也恢复了
![]()
应用案例4
- restore命令恢复备份的文件,或者整个目录的文件
创建一个临时目录用来测试备份恢复,进入这个目录准备恢复
![]()
恢复
![]()












浙公网安备 33010602011771号