摘要
介绍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