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

发布时间 2023-07-27 23:00:52作者: Crispy·Candy

摘要

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

一、基本介绍

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

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

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

二、备份 | 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) 备份分区

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

  1. 备份/boot/目录
  2. 然后在/boot/目录添加文件
  3. 再次备份

  1. 备份 /boot/目录
dump -0uj -f /opt/boot.bak0.bz2 /boot/

  1. 查看opt目录
ls /opt

  1. 在/boot中添加文件
vim /boot/hello.txt
  1. 再次备份
dump -1uj -f /opt/boot.bak1.bz2 /boot/

  1. 再次查看
ll -h /opt/

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

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

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

  1. 使用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) 对比模式

  1. 首先更改原先的目录里面的文件
mv /boot/hello.txt /boot/hello100.txt # 改名
  1. 然后进行对比
restore -C -f /opt/boot.bak1.bz2 # 应该发现有一处不同
  1. 改回去
mv /boot/hello100.txt /boot/hello.txt 
  1. 然后再次比较
restore -C -f /opt/boot.bak1.bz2 

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

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

restore -t -f boot.bak1.bz2

(3) 还原

  1. 还原的时候会还原到当前目录
  2. 如果是增量备份,要按照0-9的层次依次还原
restore -r -f /opt/boot.bak0.bz2 
restore -r -f /opt/boot.bak1.bz2