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=目标分区”,就能够让两块磁盘一模一样。

posted @ 2019-05-15 15:31  青青子衿J  阅读(2205)  评论(0编辑  收藏  举报