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

  • 相关阅读:
    ARM64架构下登录mysql出错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file:
    Linux按文件名搜索命令
    kubernetes集群部署nacos:Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'MYSQL_SERVICE_HOST'
    kubernetes集群:gitlab搭建(ssh和http都能访问)
    centos7 逻辑卷缩容(xfs格式)翻车现场
    k8s集群:postgresql的pod启动失败
    no matches for kind "Deployment" in version "apps/v1beta1"
    Kubernetes集群搭建以及部署高可用ingress
    centos7安装mysql5.7
    kubernetes集群node节点重启docker的操作顺序
  • 原文地址:https://www.cnblogs.com/jixp/p/10864016.html
Copyright © 2020-2023  润新知