Linux系统本机数据备份(完整、增量备份)和还原( dump、restore)
1、安装dump备份工具。
yum -y install dump
2、dump命令格式。
dump [参数] 备份后的文件名 需要备份的文件
3、参数说明。
参数 | 说明 |
---|---|
-level | 备份级别0~9。0表示完整备份;大于0表示增量备份,默认是0。备份某个文件或不是分区的目录时,仅支持完整备份即0级备份。 |
-D | 设置文件的路径名,该文件存储有关前一个完整转储和增量转储的信息。默认位置是/etc/dumpdate。 |
-e | 从转储中排除的索引节点。,inodes是一个逗号分隔的inode编号列表。 |
-E | 从文本文件中读取备份时要排除的inode列表。 |
-f | 将备份写入文件,也可接设备文件名如/dev/st0。 |
-j | 使用bzip2压缩数据,默认压缩级别为2。 |
-Q | 启用快速文件访问支持。 |
-s | 试图计算在特定密度下所需的磁带数量。如果超过此数量,则转储提示输入新磁带。默认的磁带长度是2300英尺。 |
-S | 在没有实际执行转储的情况下计算转储所需的空间。这对于增量转储非常有用,可以确定需要多少卷媒介。 |
-T | 指定备份的日期。使用指定的日期作为转储的开始时间,而不是从查看/etc/dumpdates中确定的时间。此选项对于希望在特定时间内转储的自动转储脚本非常有用。-T选项与-u选项相互排斥。 |
-u | 备份完成后,在/etc/dumpdates中记录备份的文件系统、日期。 |
-v | 显示dump过程详细的信息。 |
-W | 显示出最近的备份时间、层级,检测需要备份的文件。当W选项出现时,其他的选项都被忽略。。-W选项会将”/etc/dumpdates”中的所有文件系统和”/etc/mtab”中的所有文件系统以及在”/etc/fstab”中识别的文件系统打印出来。 |
-w | 类似于“-W”,但只在“/etc/mtab”和“/etc/fstat”中打印需要转储的可识别的文件系统。 |
1、查看磁盘使用情况。
df -h
2、估算备份/boot所需空间。
dump -S /dev/sda1
3、完整备份/boot分区,同时更新记录文件。
dump -0 -u -f /root/boot.dump /boot
4、查看完整备份文件、记录文件的创建时间和备份记录的时间。
ls -l /etc/dumpdates /root/boot.dump
cat /etc/dumpdates
1、在/boot目录内新建一个10MB的文件。
dd if=/dev/zero of=/boot/test.log bs=1M count=10
2、增量备份/boot分区,同时更新记录文件。
dump -1 -u -f /root/boot.dump.1 /boot
3、查看备份文件容量,和新建的文件大小一样。
ll /root/boot.*
4、查看增量备份时间及备份级别。
dump -W
1、创建需要备份的目录。
mkdir -p /test/dict/dict1
cd /test/dict/
mkdir dict2 dict3
touch 1.txt 2.txt 3.txt
2、完整备份此目录。
dump -0 -j -f /root/dict.dump.bz2 /test/dict/
3、备份目录仅支持完整备份,不支持‘-u’参数,无法创建备份时间记录,所以如下两条命令(增量备份和创建备份时间记录)备份均失败。测试过程如下图。
dump -1 - j -f /root/dict.dump.1.bz2 /test/dict/
dump -0 -u -j -f /root/dict.dump.bz2 /test/dict/
1、restore 命令的格式。
restore [模式] [参数]
2、restore 命令的常用模式。
模式 | 说明 |
---|---|
-C | 比对模式,比较备份数据和实际数据的变化。最终会列出‘在dump文件内有记录,且目前文件系统不一样’的文件。数据比较只有在原有数据减少或发生变化时才能检测到变化,而新增的数据是不会被检测到的。 |
-i | 交互模式,可以仅还原部分文件,用在dump目录的还原。 |
-t | 查看模式,用于查看备份文件中拥有哪些数据。 |
-r | 还原模式,用于数据还原。 |
-D | 与-C搭配,查出‘-D’(参数)后面接的挂载点与dump文件内不同的文件。 |
-h | (参数)查看完整备份数据中的inode与文件系统label等信息。 |
-f | (参数)后面接要还原的那个dump文件。 |
1、restore比对模式。数据比较只有在原有数据减少或发生变化时才能检测到变化,而新增的数据是不会被检测到的。
2、在/boot挂载点新增了一个文件111111.txt。
touch /root/111111.txt
3、备份dump文件内容与实际文件系统比较,检测不到变化。
restore -C -f /root/boot.dump.1
4、备份dump文件内容与/boot挂载点比较,检测不到变化。
restore -C -f /root/boot.dump.1 -D /boot
5、在/boot实际文件系统中,往test.log文件追加内容。
echo "2222222" >> test.log
6、备份dump文件内容与实际文件系统比较,发现test.log文件尺寸放生变化,有文件修改过。
restore -C -f /root/boot.dump.1
7、备份dump文件内容与/boot挂载点比较,发现test.log文件尺寸放生变化,有文件修改过。
restore -C -f /root/boot.dump.1 -D /boot
1、查看单一文件系统(分区)备份内容。
restore -t -f /root/boot.dump.1
单一文件系统(分区)还原。
1、新建准备还原的目录。如果这个目录是我新建的分区,也可以直接把数据恢复到分区中。
mkdir /data/restoreboot
2、进入准备还原的目录,先还原完全备份的数据/root/boot.dump,再还原 /root/boot.dump.1增量备份。还原后数据与实际文件系统数据如下图。
cd /data/restoreboot/
restore -r -f /root/boot.dump
restore -r -f /root/boot.dump.1
目录还原。
1、新建准备还原的目录。
mkdir /data/restoredict
2、进入准备还原的目录,还原完全备份的数据/root/boot.dump。还原后数据与实际文件系统数据如下图。
cd /data/restoredict
restore -r -f /root/dict.dump.bz2