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

原文地址:https://www.cnblogs.com/machangwei-8/p/10353650.html