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