功能说明:备份文件系统。

语  法: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/还原命令restore

dump 可以执行类似 tar 的功能。然而, dump 倾向于考虑文件系统而不是个别的文件。下面是引自 dump 手册文件中的内容:“dump 检查 ext2 文件系统上的文件,并确定哪些文件需要备份。这些文件将出于安全保护而被复制到给定的磁盘、磁带或其他存储媒体上……大于输出媒体容量的转储将被划分到多个卷。在大多数媒体上,容量是通过一直写入直至返回一个 end-of-media 标记来确定的。”

配合 dump 的程序是 restore ,它用于从转储映像还原文件。

restore 命令执行转储的逆向功能。可以首先还原文件系统的完全备份,而后续的增量备份可以在已还原的完全备份之上覆盖。可以从完全或部分备份中还原单独的文件或者目录树。

dump 和 restore 都能在网络上运行,因此您可以通过远程设备进行备份或还原。 dump 和 restore 使用磁带驱动器和提供广泛选项的文件设备。然而,两者都仅限用于 ext2 和 ext3 文件系统。如果使用的是 JFS、Reiser 或者其他文件系统,您将需要其他的实用工具,比如 tar 。

使用 dump 执行备份
使用 dump 执行备份是相当简单的。下面的命令执行一个完全 Linux 备份,它把所有 ext2 和 ext3 文件系统备份到一个 SCSI 磁带设备。

dump 0f /dev/nst0 /boot
         

dump 0f /dev/nst0 /

       

在这个例子中,系统中有两个文件系统。一个用于 /boot,另一个用于 / ,这是常见的配置。它们必须在执行备份时单独地引用。 /dev/nst0 引用第一个 SCSI 磁带驱动器,不过是以非重绕的模式引用。这样确保各个卷在磁带上一个接一个地排列。

dump 的一个有趣特性是其内置的增量备份功能。在上面的例子中, 0 表示 0 级或基本级备份。这是完全系统备份,您要定期执行以保存整个系统。对于后续的备份,您可以使用其他数字(1-9)来代替 0,以改变备份级别。1 级备份会保存自从执行 0 级备份以来更改过的所有文件。2 级备份会保存自从执行 1 级备份以来更改过的所有文件,以此类推。使用 tar 和脚本可以执行相同的功能,但要求脚本创建人员提供一种机制来确定上次备份是何时执行的。 dump 具有它自己的机制,即它在执行备份时会输出一个更新文件(/etc/dumpupdates)。这个更新文件将在每次执行 0 级备份时被重设。后续级别的备份会保留它们的标记,直至执行另一次 0 级备份。如果您在执行基于磁带的备份, dump 会自动跟踪多个卷。

跳过文件
标记将被 dump 跳过的文件和目录是可以做到的。实现此目的的命令是 chattr ,它改变 ext2 和 ext3 文件系统上的扩展属性。

chattr +d <filename>

上面的命令向文件添加一个标记,让 dump 在执行备份时跳过该文件。

使用 restore 来执行还原
要还原使用 dump 保存的信息,可以使用 restore 命令。像 tar 一样, dump 能够列出( -t )归档文件的内容,并与当前文件作比较( -C )。使用 dump 時必须小心的地方是还原数据。有两种非常不同的还原方法,您必须使用正确的方法才能获得可预测的结果。

重建 (-r)
记住,在设计 dump 时考虑得更多的是文件系统,而不是单独的文件。因此,存在两种不同的文件还原风格。要重建一个文件系统,可使用 -r 命令行开关。设计重建的目的是为了能在空文件系统上操作,并将它还原为已保存的状态。在执行重建之前,您应该已经创建、格式化和装载(mount)了该文件系统。不应该对包含文件的文件系统执行重建。

下面是使用上面执行的转储来执行完全重建的例子。

restore -rf /dev/nst0

上面这个命令需要针对要还原的每个文件系统分别执行。

在需要的时候,可以重复这个过程来添加增量备份。

提取 (-x)
如果需要使用单独的文件而不是使用整个文件系统,您必须使用 -x 开关来提取它们。例如,要仅从我们的磁带备份中提取 /etc 目录,可使用以下命令:

restore -xf /dev/nst0 /etc

交互式还原 (-i)
restore 提供的另外一个特性是交互式模式。使用命令:

restore -if /dev/nst0

将把您置于交互式 shell 中,同时还显示了包含在该归档文件中的项。键入“help”将会显示一个命令列表。然后您就可以浏览并选择希望提取的项。务必记住,您提取的任何文件都将进入当前目录。

举例说明:
dump命令是一个专门用来备份的工具。

[root@laptop pyegrp]# dump -0 -u -f /dev/hda3 /home/pyegrp/
DUMP: Date of this level 0 dump: Sat Nov 30 19:45:56 2002
DUMP: Dumping /dev/hda9 (/home/pyegrp) to /dev/hda3
DUMP: Added inode 7 to exclude list (resize inode)
DUMP: Label: none
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 15492 tape blocks.
DUMP: Volume 1 started with block 1 at: Sat Nov 30 19:46:01 2002
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Closing /dev/hda3
DUMP: Volume 1 completed at: Sat Nov 30 19:46:13 2002
DUMP: Volume 1 15490 tape blocks (15.13MB)
DUMP: Volume 1 took 0:00:12
DUMP: Volume 1 transfer rate: 1290 kB/s
DUMP: 15490 tape blocks (15.13MB) on 1 volume(s)
DUMP: finished in 12 seconds, throughput 1290 kBytes/sec
DUMP: Date of this level 0 dump: Sat Nov 30 19:45:56 2002
DUMP: Date this dump completed: Sat Nov 30 19:46:13 2002
DUMP: Average transfer rate: 1290 kB/s
DUMP: DUMP IS DONE

-0 是备份的等级,从0-9,0以后都是更新备份的参数,一般常用的是0和9
-u 是将备份记录写入/etc/dumpdates这个文件中

[root@laptop pyegrp]# cat /etc/dumpdates
/dev/hda9 0 Sat Nov 30 19:45:56 2002
/dev/hda9 9 Sat Nov 30 17:04:20 2002

注意,当你备份的目录是一个子目录,而不是一个分区的顶层目录时-u参数
是不能使用的。

-f 是指定备份到那个文件,也可以指定一个设备文件,我在这里指定的就是一个分区

更新备份:
在0级别备份的基础上,向/home/pyegrp写入一些新的文件,然后
umount /home/pyegrp
mount /home/pyegrp
注意如果不这样做,不会将新写入的文件备份进去的。
然后:
[root@laptop pyegrp]# dump -9 -u -f /dev/hda3 /home/pyegrp/
用restore tf /dev/hda3
就会看到刚刚写入的文件会出现在列表中。

restore命令是用来恢复备份的。
[root@laptop pyegrp]# restore rf /dev/hda3 /home/pyegrp

用restore命令来查看备份文件里的文件列表
[root@laptop pyegrp]# restore ft /dev/hda3