dump

ext2/ext3/ext4文件系统备份


语法格式

dump [-level] [-aMnqSuv] [-A file] [-B records] [-b blocks] [-D file]
        [-e inodes] [-E file] [-f file] [-F script] [-L label] [-T date] 
        filesys
dump [-W|-w]

命令简介

dump命令用于考察ext2/3/4文件系统中的文件,确定哪些文件需要备份,把需要备份的文件复制到给定的磁盘、磁带或其他存储介质(至于远程备份详见“-f”选项的说明)。

filesys可以是需要备份的文件系统安装点、文件系统分区的设备文件名(包括尚未安装的文件系统),或作为文件系统子集的一组文件与目录。文件系统安装点是文件系统目录层结构中的一个目录,其中安装了某个文件系统。

如果备份的是一组文件与目录,不能使用“-u”选项更新/etc/dumpdates文件,备份级别只能选用0,选择的所有文件与目录必须位于同一个文件系统。

如果未用“-f”选项指定设备文件名,dump将使用TAPE变量的值作为备份设备。TAPE变量的值可以是tapename(磁带机)、host:tapename(远程主机上的磁带机)或user@host:tapename。如果TAPE变量为空,默认的备份设备是/dev/st0。

如果备份的数据量大于输出介质,dump可以把备份数据分成多个卷。目前,大多数存储介质都有额定的容量。在开始备份之前,可以使用“-S”选项估算备份的数据量,根据存储介质的额定容量计算需要多少存储介质。此外,也可以使用“-B”选项指定存储介质的容量。当写满一个存储介质之后,根据存储设备返回的介质结束标志,dump会使用相同的设备文件名,提示用户更换介质。

dump命令的主要用途是备份系统或应用数据。在开始备份之前,首先要有一个备份策略,根据系统的状况,数据的容量,备份的时间,恢复的要求,以及存储介质的情况,制订一个备份计划,例如,每周、每10天、每半月或每月制作一个完整备份,然后每天做一次增量备份等。

在制作完整备份时,必须使用备份级别0。制作增量备份时,可以在1~9中任选一个备份级别。

注意,在运行dump命令时,文件系统应处于静止状态,否则无法确保当前文件系统与实际备份数据的一致性,从而导致restore命令无法正确地恢复文件。一个文件系统能够保持静止状态,仅当文件系统已经卸载,或系统处于单用户运行模式。

命令选项

-level  备份级别。备份级别可以是任何整数(合法的备份级别之前为0~9,现可为任意整数),其中0表示完整备份整个文件系统。大于0的任何备份级别均为增量备份,这意味着仅仅备份自上一次执行较低级别的备份以来新建或修改过的所有文件。默认的备份级别为0。

-a  表示由dump自动确定存储介质的容量,或只管写,直至遇到介质结束标志再做处理。这是默认的处理方式。

-A file  生成一个备份文件列表,写入指定的文件中,以便restore命令能够确定准备恢复的文件是否位于备份介质的档案文件中。

-b blocks  指定每个备份记录包含多少1KB的数据块。每个备份记录通常由10个1KB的数据块组成。可以指定的最大值为1024,但最好不要超过64个1KB的数据块。

-B records  指定每个存储介质能够容纳的1KB数据块的数量。通常不需要指定,dump能够检测存储介质的结束标志。当达到指定的容量(或写满存储介质)时,dump会提示并等待用户更换介质。这个选项将禁止dump基于长度和密度计算磁带的容量。指定这个参数时可以提供一组数值,中间加逗号“,”分隔符。每个数值依次对应一个备份卷。

-D file  指定存储完整备份或增量备份信息的文件。默认的文件为/etc/dumpdates。

-e inodes  备份时排除指定信息节点号对应的文件。指定信息节点时,多个信息节点之间需加逗号“,”分隔符。注意,如果想要查询文件和目录的信息节点,可以使用stat或ls命令。

-E file  从指定的文本文件中获取欲排除的信息节点,其中每个信息节点占一行。

-f file  把备份数据写到指定的文件。文件参数可以是设备文件(如/dev/st0磁带机)、普通文件或减号“-”(标准输出)。指定这个参数时可以同时给出多个文件,文件名之间加逗号“,”分隔符。按照给定的顺序,每个文件可以作为多卷备份中的一个备份卷。如果指定的文件为“host:file”或“user@host:file”,dump将利用rmt命令,把备份数据写入远程主机中的指定文件(文件必须事先存在,dump不会在远程系统中创建新的文件)。远程rmt命令默认的路径名为/etc/rmt,必要时可以使用环境变量RMT重新定义。

-F script  在写入每个备份卷(最后一个除外)结束之后,运行指定的脚本。dump将会把设备文件名和当前备份卷的卷号作为命令行参数传递给指定的脚本。脚本运行结束后,如果其返回值为0,意味着dump可以继续执行备份,无须请求用户更换磁带。如果返回值为1,dump将会提示用户更换介质,然后才能继续执行备份。其他返回值将会导致dump终止执行。

-L label  作为备份介质的卷标,把指定的字符串写入备份文件的头部,使restore和file等工具能够快速访问及识别文件的类型。当前,字符串的长度限于16个字符(包括终止符“\0”)。

-M  支持多卷备份功能。“-f”选项指定的文件名将会作为一个前缀,用于命名一系列备份文件,如<filename>001、<filename>002等。dump将会依次写入每个备份文件。在ext2文件系统中,为了克服2GB文件大小的限制,存储备份文件,这个选项是非常有用的。

-n  无论何时,只要需要操作员干预,dump将会利用类似wall命令的方法,通知属于用户组operator的所有用户。

-q  无论何时遇到问题需要操作员干预(写错误或需更换磁带等),不提示任何信息,而是立即终止dump的运行。

-S  仅仅估算存储容量的需求,而不真正备份。在开始备份之前,可利用这个选项确定究竟需求多大的存储空间或容量,从而确定需要多少备份介质。注意,dump显示的是指定文件系统、目录或文件的字节数量。

-T date  使用指定的时间(而非/etc/dumpdates文件中记录的时间)作为起始备份时间,时间格式为“www mmm dd hh:mm:ss yyyy”,如“Thu Nov 12 00:55:05 2012”,时区偏移值格式为“±HHMM”,如+0800(北京时间)。如果未指定时区偏移值,可把备份时间看作本地时间。注意,“-T”选项不能与“-u”选项一起使用。

-u  在成功完成备份之后,更新/etc/dumpdates文件。这是一个ASCII文件,文件由“<文件系统或设备文件名> <备份级别> <备份时间> <时区偏移值>”格式的记录组成(如果未指定时区偏移值,可以把备份时间看作本地时间)。

-v  采用详细显示方式,输出命令的处理过程及动作等信息。

-w  类似于“-W”,但仅限于显示/etc/mtab与/etc/fstab文件中需要备份的文件系统。

-W  指定这个选项时,dump将会依据/etc/dumpdates、/etc/fstab与/etc/mtab文件,告诉用户哪些文件系统需要备份,文件系统的最近备份日期与备份级别,并高亮显示应备份的文件系统。如果选用了“-W”选项,dump将会忽略其他选项,显示上述信息后立即退出。

应用实例

1. 使用0作为备份级别,制作一个的完整备份,把数据写到一个7GB的磁带上,且在完成备份后更新/etc/dumpdates文件。

# dump -0uf /dev/st0 /appdata
  DUMP: Date of this level 0 dump: Fri Apr 11 01:00:30 2012
  DUMP: Dumping /dev/sdb2 (/appdata) to /dev/st0
  DUMP: Label: none
  DUMP: Writing 10 Kilobyte records
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 6105231 blocks.
  DUMP: Volume 1 started with block 1 at: Fri Apr 11 01:00:32 2012
#

2. 在制作完整备份之后,选用一个大于0的备份级别,定期执行增量备份,备份发生变动的文件。

# dump -6uf /dev/st0 /appdata
  DUMP: Date of this level 6 dump: Sat Apr 12 01:00:30 2012
  DUMP: Date of last level 0 dump: Fri Apr 11 01:00:30 2012
  DUMP: Dumping /dev/sdb2 (/appdata) to /dev/st0
  DUMP: Label: none
  DUMP: Writing 10 Kilobyte records
#

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z