Linux 备份工具dump
Posted jixp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 备份工具dump相关的知识,希望对你有一定的参考价值。
dump的功能很强,除了可以备份整个文件外,还能够针对目录来备份,还可以指定等级。什么意思呢?假设你的/home是独立的一个
文件系统,那你第一次进行过dump后,再进行第二次dump时,可以指定不同的等级,如果指定的等级为1,此时设备的数据只会记录与第一次
备份有所差异的文件而已。
上方的“实时文件系统”是一直随着时间变化的数据,例如在/home里面的文件数据会一直变化。而下方的方块则是dump备份起来的数据,第一次
备份时使用的是level0,这个等级也是完整的备份,等到第二个备份时,实时文件系统内容已经与level0不一样了,而level1仅只是比较目前文件系统与
level0之间的差异后,备份有变化的文件而已。至于level2则是与level1进行比较。
虽然dump支持整个文件系统或者是单一目录,但是对于目录的支持比较不足,这是dump的不足所在。
备份数据为单一文件系统
如果是单一文件系统,那么该文件系统可以使用完整的dump功能,包括利用0-9级的数个leve类备份,同时,备份时可以使用挂载点或者是设备文件
名来进行备份。
待备份的数据只是目录,并非单一文件系统
如果你仅想备份/home/someone/,但是该目录并非独立的文件系统时,此时备份就有限制:
- 所有的备份数据都必须要在该目录(/home/someone/)下面
- 且仅能使用level 0,仅支持完整备份而已
- 不支持-u参数,无法创建/etc/dumpdates这个level备份的时间记录文件。
dump虽然非常复杂,如果只是想要简单的操作时,只要记住下面几个参数:
用dump备份完整的文件系统
看看能否真的新建level1的备份:
备份非文件系统,即单一目录的方法
现在来处理/etc的dump备份。因为/etc并非单一文件系统,它只是一个目录而已。所以 -u level1~9都不使用。我们只能使用level0的完整
备份将/etc dump下来 :
一般来说dump不会使用压缩的功能,不过如果想要将备份空间降低的话,那个-j的参数是可以使用的。加上-j之后你的dump结果会使用较少
的应盘空间。
restore
dump的恢复使用的是restore这个命令。这个命令参数也非常多,可以自行 manrestore,这里只做简单介绍:
用restore查看dump备份数据内容
这个查询的数据其实显示出的是文件名与元文件的inode状态,所以说我们可以说,dump会参考inode的记录。通过这个查询我们可以
知道dump的内容为何。
比较差异并且还原整个文件系统
为什么dump可以进行累计备份呢?就是因为它具有可以查询文件系统与备份文件之间的差异,并且将分析到的差异进行备份的缘故。
上面的操作,通过曾经备份过的信息,可以找到与目前实际文件系统中有差异的数据。那如何还原呢。由于dump是记录整个文件系统的
因此还原时你也应该要给与一个全新的文件系统。下面我们新建一个文件系统,然后在还原。
如果还想要将level1的那个文件内容也还原的话,那就继续使用“restore -r -f /boot/boot.dump1”去还原。
仅还原部分文件的restore
restore内的add除了可以增加文件外,也能够增加整个备份的目录。
dd
因为dd可以读取磁盘设备的内容(几乎是直接读取扇区),然后将整个设备备份成一个文件。dd的用途很多,比较重要的参数如下:
你可以说,tar可以用来备份关键数据,而dd则可以用来备份整块分区或整块磁盘,如果不需要将数据填回到文件系统中,可能需要考虑到原本
的文件系统才能成功。新分区出来的分区不需要经过格式化,因为dd可以将原本旧的分区中扇区表面的数据整个复制过来。当然连同superblock
boot sector , meta data等全部复制过来。未来你想要构建一模一样的磁盘时,只要执行“dd if=源分区 of=目标分区”,就能够让两块磁盘一模一样。
以上是关于Linux 备份工具dump的主要内容,如果未能解决你的问题,请参考以下文章