• dump命令详解


      

    基础命令学习目录首页

    原文链接:http://mip.xuexila.com/diannao/xitong/linux/3609675.html

    linux系统下我们可以使用备份命令dump对系统文件进行备份,以免数据丢失。下面由学习啦小编为大家整理了linux下备份命令dump的相关知识,希望大家喜欢!

      linux备份命令dump详解

      语 法:

      dump [-cnu][-0123456789][-b <区块大小>][-B <区块数目>][-d <密度>][-f < 设备名称>][-h < 层级>][-s < 磁带长度>][-T < 日期>][ 目录或文件系统] 或 dump [-wW]

      补充说明:dump 为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

      参 数:

      -0123456789 备份的层级。

      -b<区块大小> 指定区块的大小,单位为 KB。

      -B<区块数目> 指定备份卷册的区块数目。

      -c 修改备份磁带预设的密度与容量。

      -d<密度> 设置磁带的密度。单位为 BPI。

      -f<设备名称> 指定备份设备。

      -h<层级> 当备份层级等于或大雨指定的层级时,将不备份用户标示为"nodump"的文件。

      -n 当备份工作需要管理员介入时,向所有"operator"群组中的使用者发出通知。

      -s<磁带长度> 备份磁带的长度,单位为英尺。

      -T< 日期> 指定开始备份的时间与日期。

      -u 备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等。

      -w 与-W 类似,但仅显示需要备份的文件。

      -W 显示需要备份的文件及其最后一次备份的层级,时间与日期。

      linux下dump命令备份步骤

      1.创建系统:dd if=icp-centos54-64.img of=lvstest1.img bs=100M

      2.创建备份块:dd if=/dev/zero of=backup.img bs=100M count=100

      3.mkfs.ext3 backup.img

      4.创建vm系统启动文件lvstest1.xml

      5.启动VM:virsh create lvstest1.xml

      6.进入系统挂载备份块:mount /dev/sdb /mnt

      7.使用命令进行系统备份:dump -0uf /mnt/backup0.dump /

    在我们的系统中 dump 命令是没有安装的,所以先安装一下 dump 命令,安装命令如下:

    [root@localhost ~]# yum -y install dump

    在正式介绍 dump 命令之前,我们需要知道 dump 命令可以支持 0~9 共 10 个备份级别。其中,0 级别指的就是完全备份,1~9 级别都是增量备份级别。

    也就是说,当我们备份一份数据时,第一次备份应该使用 0 级别,会把所有数据完全备份一次;第二次备份就可以使用 1 级别了,它会和 0 级别进行比较,把 0 级别备份之后变化的数据进行备份;第三次备份使用  2 级别,2 级别会和 1 级别进行比较,把 1 级别备份之后变化的数据进行备份;以此类推。

    需要注意的是,只有在备份整个分区或整块硬盘时,才能支持 1~9 的增量备份级别;如果只是备份某个文件或不是分区的目录,则只能使用 0 级别进行完全备份。

    dump 命令格式如下:

    [root@localhost ~]# dump [选项] 备份之后的文件名 原文件或目录

    选项:
    -level:就是我们说的 0~9 共 10 个备份级别;
    -f  文件名:指定备份之后的文件名;
    -u:备份成功之后,把备份时间记录在 /etc/dumpdates 文件中;
    -v:显示备份过程中更多的输出信息;
    -j:调用 bzlib 库压缩备份文件,其实就是把备份文件压缩为 .bz2 格式,默认压缩等级是 2;
    -W:显示允许被 dump 的分区的备份等级及备份时间;

    dump 命令是一个较为复杂的命令,如果我们只是想要实现数据的备份与恢复,那么掌握以上几个选项就足够了。

    备份分区

    我们先来看看如何使用 0 级别备份分区。命令如下:

    [root@localhost ~]# df -h
    文件系统  容量 已用 可用 已用% 挂载点
    /dev/sda3   20G 3.0G 16G 17% /
    tmpfs   30 6M 0 30 6M 0% /dev/shm
    /dev/sda1   194M 26M 158M 15% /boot
    /dev/sr0   3.5G 3.5G 0 100% /mnt/cdrom
    #系统中我们就分了/分区和/boot分区。根分区太大,备份速度太慢,我们还是备份/boot分区吧
    [rootSlocalhost ~]# dump -Ouj -f /root/boot.bak.bz2 /boot/
    #备份命令。先执行一次完全备份,并压缩和更新备份时间
    DUMP: Date of this level 0 dump: Wed Jun 5 03:08:22 2013
    #备份的级别和时间
    DUMP: Dumping /dev/sdal (/boot) to /root/boot.bak.bz2
    #备份源和目标
    DUMP: Label: none
    #分区没有卷标
    DUMP: Writing 10 Kilobyte records
    DUMP: Compressing output at compression level 2 (bzlib)
    #备份时压缩
    DUMP: mapping (Pass I) [regular files]
    DUMP: mapping (Pass II) [directories]
    DUMP: estimated 21846 blocks.
    DUMP: Volume 1 started with block 1 at: Wed Jun 5 03:08:22 2013
    DUMP: dumping (Pass III) [directories]
    #开始dump 备份
    DUMP: dumping (Pass XV) [regular files]
    DUMP: Closing /root/boot.bak.bz2
    #备份结朿,生成备份文件
    DUMP: Volume 1 completed at: Wed Jun 5 03:08:30 2013
    DUMP: Volume 1 took 0:00:08
    DUMP: Volume 1 transfer rate: 2370 kB/s
    DUMP: Volume 1 21930kB uncompressed, 18962kB compressed, 1.157:1
    #数据容量
    DUMP: 2X930 blocks (21.42MB) on 1 volume(s)
    DUMP: finished in 7 seconds, throughput 3132 kBytes/sec
    DUMP: Date of this level 0 dump: Wed Jun 5 03:08:22 2013
    DUMP: Date this dump completed: Wed Jun 5 03:08:30 2013
    DUMP: Average transfer rate: 2370 kB/s
    DUMP: Wrote 21930kB uncompressed, 18962kB compressed, 1.157:1
    [root@localhost ~]# cat /etc/dumpdates
    #查看备份时间文件
    /dev/sdal 0 Wed Jun 5 03:08:22 2013 +0800
    #备份的分区 备份级别 备份曰期
    [root@localhost @]# 11 -h /root/boot.bak.bz2
    -rw-r--r--. 1 root root 19M 6 月 5 03:08 /root/boot.bak.bz2
    #备份文件生成了

    如果 /boot 分区的内容发生了变化,则可以使用 1 级别进行增量备份。当然,如果数据会继续发生变化,则可以继续使用 2~9 级别增量备份。命令如下:

    [root@localhost ~]# ll -h /root/install.log
    -rw-r--r--.1 root root 25K 4月 10 21:49 /root/install.log
    #查看安装软件包日志的大小为25KB
    [root@localhost ~]# cp install.log /boot/
    #复制日志文件到/boot分区
    [root@localhost ~]# dump -1uj -f /root/boot.bak1.bz2 /boot/
    #增量备份/boot分区,并压缩
    [root@localhost ~]# ll -h boot.bak*
    -rw-r--r--.1 root root 18K 6月 5 03:16 boot.bak1.bz2
    -rw-r--r--.1 root root 19M 6月 5 03:08 boot.bak.bz2
    #boot.bak1.bz2压缩文件只有18KB,证明增量备份只备份了0级别以后变化的数据
    #boot.bak1.bz2压缩文件只有18KB,证明增量备份只备份了0级别以后变化的数据

    如果备份的是整个分区,那么是可以使用“dump -W”命令来查询分区的备份时间及备份级别的。不过要注意,如果备份时没有使用“-u”选项,那么“dump -W”命令是不会记录备份的时间和级别的。命令如下:

    [root@localhost ~]# dump -W
    Last dump(s) done (Dump '>' file systems):
    /dev/sda3 ( /) Last dump:Level 1, Date Wed Jun 5 02:31:50 2013
    /dev/sda1 ( /boot) Last dump:Level 1, Date Wed Jun 5 03:16:27 2013
    #我的/分区和/boot分区都进行过dump备份,/boot分区的最新备份级别是1

    dump命令可以非常方便地实现增量备份,但是如何实现差异备份呢?其实也很简单,先使用 0 级别完全备份一次,以后的每次备份都使用 1 级别进行备份。

    备份文件或目录

    dump 命令也可以文件或目录,不过,只要不是备份分区,就只能使用 0 级别进行完全备份,而不再支持增量备份。同时,不能使用“-u”选项更新分区的备份时间,当然也不能使用“dump -W”命令查询到文件或目录的备份。

    我们说 /etc/ 目录是重要的配置文件目录,那么我们就备份这个目录来看看吧。命令如下:

    [root@localhost ~]# dump -0j -f /root/etc.dump.bz2 /etc/
    #完全备份/etc/目录
    [root@localhost ~]# ll -h /root/etc.dump.bz2
    -rw-r--r--.1 root root 8.6M 6月 5 03:26 /root/etc.dump.bz2
    #查看备份文件
    不过,如果使用增量备份会怎么样呢?命令如下:
    [root@localhost ~]# dump -1j -f /root/etc.dump1.bz2 /etc/
    DUMP:Only level 0 dumps are allowed on a subdirectory
    DUMP:The ENTIRE dump is aborted.
    #备份失败了,目录备份只能使用0级别

    原文链接:http://c.biancheng.net/view/1141.html

  • 相关阅读:
    Hibernate个人学习笔记(1)
    wangzhi
    星星评分
    关于jquery中jQuery slideToggle() 方法实现的原理
    css盒模型和块级、行内元素深入理解display:in
    html 界面跳转
    wxgz平台开发
    关于Apache PHP实现无后缀名 URL重写
    读书笔记
    比较好的书本
  • 原文地址:https://www.cnblogs.com/machangwei-8/p/10353650.html
Copyright © 2020-2023  润新知