restore 命令

用途

从使用 backup 命令创建的归档中抽取文件。

语法

复原按文件名归档的文件

restore -x [ d M n O Q v q e ] [ -b 数量] [-L 标签] [-I 标签] [ -f 设备] [ -s SeekBackup] [ -E { force | ignore | warn }] [文件 ... ]

列出按文件名归档的文件

restore'-T' | '-t[a'l' 'n' 'q' 'v' 'Q' ] [ '-b数字] [ '-f'设备] [ '-sSeekBackup

复原按文件系统归档的文件

restore -r [ B O n q v y] [ -b数量] [ -f设备] [ -sSeekBackup]

复原按文件系统归档的文件

restore -R [ B O n v y ] [ -b 数量] [ -f 设备] [ -s SeekBackup]

复原按文件系统归档的文件

restore -i [ O h m n q v y ] [ -b数量] [ -f 设备] [ -s SeekBackup]

复原按文件系统归档的文件

restore -x [ B O h n m q v y ] [ -b数量] [ -f设备] [ -sSeekBackup] [文件 ... ]

从指定的卷号开始复原文件

restore -X Number[-MdnqveOQ ][ '-b Number] [ '-f Device] [ '-s Number] [ '-E{ 'force| 'ignore| 'warn}][File... ]

列出按文件系统归档的文件

restore'-t' | '-T[ 'B'a' 'l' 'n' 'h' 'q' 'v'y]。[ '-b Number] [ '-f Device] [ '-s SeekBackup][File ...] [文件..

复原按文件名归档的文件属性

restore -Pstring [B d qv Q ] [ b数量] [ s SeekNumber] [-L 标签] [-I 标签] [-f 设备] [文件 ... ]

复原按文件系统归档的文件属性

restore -Pstring [ hqv] [ b 数量] [ s SeekNumber] [-f 设备] [文件 ... ]

描述

restore 命令会读取由 backup 命令创建的归档并抽取存储在其上的文件。 这些归档可以采用文件名或文件系统格式。 归档可以存储在磁盘、软盘或磁带上。 用于复原文件的方法必须与先前用于对其进行归档的方法相同。 此操作要求您知道归档的格式。 可通过检查当使用 -T 标志时显示的归档卷头信息来确定归档格式。 当使用 -x-r-T-t 标志时,restore 命令会自动确定归档格式。

可通过使用 -x 标志并指定文件名来从文件名归档或文件系统归档复原各个文件。 文件名必须根据归档中存在的文件名指定。 可通过使用 -i 标志来从文件系统归档交互地复原文件。 可通过使用 -T 标志来将归档上文件的名称写入标准输出。

用户必须对文件系统设备具有写访问权,或具有复原权限,才能抽取归档的内容。

软盘设备 /dev/rfd0restore 命令的缺省介质。 为了从标准输入中恢复,用 -f 标志指定 -(长划)。 也可指定一系列设备,例如 /dev/rfd0
注意:
  1. 如果正在从多卷归档复原,那么 restore 命令会读取已安装的卷,提示您插入下一个卷,并等待您的响应。 在插入下一个卷之后,请按下 Enter 键以继续复原文件。
  2. 如果通过使用 backup 命令创建的归档被制成设备块大小设置为 0 的磁带设备,那么您必须清楚知道当创建磁带时使用的块大小,才能从磁带进行复原。
  3. 在单个磁带上可以存在多个归档。 从磁带复原多个归档时,restore 命令期望输入设备是 no-retension-on-open、no-rewind-on-close 磁带设备。 除非指定了 -B-s-X 标志,否则请勿使用 no-rewind 磁带设备进行复原。 有关使用磁带设备的更多信息,请参阅 rmt 特殊文件。

文件系统归档

由于对文件进行归档时所用的方法,文件系统归档也称为索引节点归档。 文件系统名称通过 backup 命令来指定,并且该文件系统内的文件是根据它们在文件系统内的结构和布局进行归档的。 restore 命令会复原文件系统归档上的文件,而不必对该文件系统的底层结构进行任何特殊了解。

复原文件系统归档时,restore 命令会创建并使用名为 restoresymtable 的文件。 这个文件在当前的目录中创建。 如果要使用 restore 命令来执行增量文件系统复原,那么该文件是必需的。
注: 如果运行增量文件系统备份和复原,请勿除去 restoresymtable 文件。

使用 -r-R 标志时,将忽略 File 参数。

文件名归档

通过对 backup 命令指定要归档的文件名的列表,会创建文件名归档。 restore 命令会复原文件名归档中的文件,而不必对文件系统的底层结构进行任何特殊了解。 当您指定要进行归档抽取的文件时,restore 命令允许使用元字符。 此进程提供了从基于模式匹配的归档中抽取文件的能力。 必须用单引号将模式文件名引起,并且必须用方括号 (...) 将模式括起。

关于稀疏文件

如果操作系统文件系统中存在包含 NULL 的长字符串的文件,那么与其他文件比较时,这些文件的存储可以很高效。 如果 NULL 的字符串跨越整个分配块,那么根本不会将这整个块存储在磁盘上。 以此方式省略的一个或多个块的文件叫做稀疏文件。 丢失的块也称作空穴。

注: 将非稀疏文件复原为非稀疏文件,因为它们是通过 backup 命令的名称格式针对打包和解包文件进行归档的。 必须了解要复原的文件的稀疏和非稀疏状态,然后才能对这些文件进行归档。 需要执行此检查,因为通过启用 -e 标志,该标志会将稀疏文件复原为非稀疏状态。 仅当要复原的文件为非稀疏状态并且由大小超过 4 KB 的 NULL 组成时,才必须启用此标志。 如果在复原操作期间指定了 -e 标志,那么它会成功地正常复原所有常规文件,并且将非稀疏数据库文件复原为非稀疏状态。

标志

描述信息
-a tT 选项一起指定时,-a 选项会显示归档中文件的列表以及它们的许可权。
-B 指定必须从标准输入中读取归档。 正常情况下,restore 命令检查确切的媒体以确定备份格式。 当使用 |(管道)时,不会进行此检查。 因此,会将归档视为采用文件系统格式,并且将设备视为标准输入 (-f)。
-b Number 指定按名称完成的备份的 512 字节块数。 对于按索引节点完成的备份,该标志指定要在单个输出操作中读取的 1024 字节块数。 当 restore 命令从此磁带设备进行读取时,对于按名称完成的备份,缺省值为 100,对于按索引节点完成的备份,缺省值为 32。

读取大小是块数乘以块大小。 从磁带设备读取 restore 命令的缺省读取大小为 51200 (100 * 512) (按名称进行备份) 和 32768 (32 * 1024) (按索引节点进行备份)。 读取的大小必须是磁带物理块大小的偶数倍。 如果读大小不是磁带物理块大小的偶数倍,并且它在固定的块模式(非零)中,restore 命令尝试确定 Number 的有效数值。 如果成功,那么 restore 命令会将 Number 更改为新值,将有关该更改的消息写入标准输出,然后继续。 如果 Number 的有效值查找不成功,restore 命令将错误消息写到标准错误中并和一个非空的返回代码一起退出。 Number 参数的更大的值导致了磁带设备上更大的物理传输。

-b 标志的值当 restore 命令从磁盘读取的时候,一直是忽略的。 在这种情况下,此命令一直从占用整个磁道的簇中读取。

-d 如果 File 参数是一个目录,指定在那个目录中的所有文件都必须恢复。 当归档采用文件名格式时,可使用此标志。
-e 指定不主动复原稀疏文件。 如果文件具有已对齐的块以及 NULL 填充的一定大小区域,那么复原操作会为要分配且用 NULL 填充的那些文件系统块创建物理空间。 以字节为单位指定的文件大小对应于文件系统内占用的空间。

仅当要复原的文件为非稀疏状态并且由大小超过 4 KB 的 NULL 组成时,才必须启用此标志。 如果在 restore期间指定了 -e 标志,那么它会成功将所有正常文件和非稀疏数据库文件复原为非稀疏文件。

-E -E 选项从指定的卷号开始抽取并需要如下参数之一。 如果您省略了 -E 选项,warn 就是缺省的行为。
force
如果文件的固定范围大小或空间限制不能保持,那么使在文件上的恢复操作失败。
ignore
忽略任何保持范围属性中的错误。
warn
如果文件空间限制或固定大小不能保持,就会发出一个警告。
-f设备 指定输入设备。 要从指定设备接收输入,请指定 Device 变量为路径名,例如 /dev/rmt0。 为了从标准输出设备接收输入,指定一个 -(减号)。 -(减号) 功能部件允许从 dd 命令中管理restore 命令的输入。

您也可以指定归档设备的范围。 范围规范必须是如下的格式:

/dev/deviceXXX-YYY

其中 XXXYYY 是整数,并且 XXX 必须总是小于 YYY;例如:/dev/rfd0-3

指定范围内的所有设备必须是同一类型的。 例如,可使用一组 8 毫米 2.3GB 磁带或一组 1.44MB 软盘。 所有的磁带设备必须设置成同样的物理磁带块大小。

如果 Device 变量指定了一个范围,那么restore 命令会自动从该范围内的一个设备进入下一个设备。 在耗光所有指定设备之后,restore 命令会停止并请求在该范围设备上安装新卷。

-h 仅复原实际目录,而不是其中包含的文件。 当归档采用文件系统格式时,可使用此标志。 当使用 -r-R 标志时,此标志会被忽略。
-I 标签 restore 命令对归档中没有安全标号的文件应用该完整性标签。 提供的标签必须在系统上存在。 该选项仅适用于在TrustedAIX® 上按名称恢复文件。
-i 从文件系统归档交互地复原所选文件。 以下是 -i 标志的子命令:
cd目录
更改当前的目录到指定的目录。
添加 [ 文件]
指定 File 参数添加到要抽取的文件列表。 如果 File 是一个目录,那么会将该目录及其中包含的所有文件都添加到抽取列表(除非使用了 -h 标志)。 如果 File 没有指定,当前的目录会添加到抽取列表中。
删除 [文件]
指定 File 参数从要抽取的文件列表中除去。 如果 File 是一个目录,那么会将该目录及其中包含的所有文件都从抽取列表中除去(除非使用了 -h 标志)。
ls [目录]
显示包含在 Directory 参数中的目录和文件。 目录名使用跟在名称后的 /(斜杠)显示。 在指定目录(在抽取列表中)中的文件和目录,在名称前加个 *(星号)显示。 如果是详细方式,文件和目录的索引节点数量也被显示出来。 如果 Directory 参数没有被指定,就会使用当前目录。
extract
在抽取列表上恢复所有的目录和文件。
pwd
显示当前目录的完整路径名。
verbose
使得 ls 子命令显示文件和目录中的索引节点数量。 从归档中抽取每个文件时,还会显示有关该文件的更多信息。
setmodes
设置所有者、方式和添加到抽取列表的所有目录的时间。
退出
使得 restore 立刻退出。 所有在抽取列表上的文件都不会恢复。
帮助
显示子命令的摘要。
-l -t-T 选项指定。 指定时则显示文件的详细列表,它包括时间戳记、文件许可权、文件大小、所有者和组。 -l 选项将覆盖 -a 选项。
-L标签 restore 命令对归档中没有安全标号的文件应用该灵敏度标签。 提供的标签必须在系统上存在。 该选项仅适用于在可信AIX 上按名称恢复文件。
-M 将所复原文件的访问和修改时间设置为复原时间。 如果复原的文件是由 ar 命令创建的归档,那么所有成员头中的修改时间也会设置为复原时间。 仅当复原单独指定的文件时,并且仅当还指定了 -x-X 标志时,才能指定 -M 标志。 当未指定 -M 标志时,restore 命令会维护访问和修改时间,如备份介质上所显示。

当数据采用AIX 4.2的按-i-节点或按名称备份格式时,将使用-M标记。

-m 当恢复文件存在于归档上时,将其重命名为文件的索引节点数量。 如果一些文件正在复原并且您希望以另一文件名复原这些文件,那么此功能很有用。 因为任何恢复归档成员以它们的索引节点数量重命名,目录层次结构和链接将不会被保护。 目录和硬链接以正规文件恢复。 当归档采用文件系统格式时,会使用 -m 标志。
-n 在缺省情况下,restore 命令将恢复归档中的所有 ACL、PCL 或指定的扩展属性。 -n 标志会使 restore 命令忽略归档中的任何 ACL、PCL 或指定的扩展属性并且不对其进行复原。当归档文件包含已加密文件系统 (EFS) 信息时,即使指定了 -n 标志,也会复原 EFS 扩展属性。 可信AIX系统上,"-n选项会导致 "restore命令忽略可信AIX安全属性。

有关还原EFS的更多信息,请参阅安全中的备份和还原

-O 使 "restore命令忽略可信AIX安全属性。
-Pstring 仅恢复文件属性。 不恢复文件内容。 如果指定的文件不存在于目标目录路径中,那么不会创建文件。 此标志会根据字符串参数中指定的标志有选择地复原文件属性。 字符串参数可以是下列字符的组合:
A
恢复所有的属性。
a
仅恢复文件的许可权。
o
仅恢复文件的所有权。
t
仅恢复文件的时间戳记。
c
仅恢复文件的 ACL 属性。
注:restore 命令的现有选项中,选项 vhbsfBdqP 选项有效。 P 选项可与文件名归档和文件系统归档配合使用。 如果 File 参数是一个符号链接,那么会修改目标文件的元数据而不会修改该符号链接的元数据。
警告: 使用 -P 标志将覆盖超级用户运行时由另一个用户拥有的文件的属性。
-Q 对于按名称完成的备份,指定当遇到错误时命令必须退出。 当发生错误时,此进程不会尝试恢复并继续处理归档。
-q 指定第一个卷已准备就绪可供使用,并且 restore 命令无法提示您使用 mount the volume and hit Enter。 如果归档范围是卷的倍数,restore 命令会为后继卷提示您。
-r 复原文件系统归档中的所有文件。 -r 标志仅用于复原完整级别 0 备份或在复原级别 0 备份后复原增量备份。 restoresymtable 文件由 restore 用于在增量复原之间传递信息。 当复原了最后的增量备份时,必须除去此文件。 使用 -r 标志时,将忽略 File 参数。
-R 请求多卷文件系统归档的特定卷。 -R 标志允许重新启动先前中断的恢复。 使用 -R 标志时,将忽略 File 参数。 当重新启动 restore 命令时,它的功能与 -r 标志的功能类似。
-sSeekBackup 指定要寻找的备份并在多备份磁带归档上恢复。 当归档写入磁带设备时,仅 -s 标志可用。 要正确使用 -s 标志,必须指定 no-rewind-on-close 和 no-re拉簧-on-open 磁带设备,例如 /dev/rmt0.1/dev/rmt0.5。 如果 -s 标志由 rewind 磁带设备指定,restore 命令显示错误消息并以非零返回码退出。 如果使用 no-rewind 磁带设备,并且未指定 -s 标志,那么会使用缺省值 -s1SeekBackup 参数的值必须在 1 到 100 之间(包含 1 和 100)。 由于 -s 标志的行为,需要使用一个 no-rewind-on-close、no-retension-on-open 磁带设备。 使用 -s 指定的值相对于磁带读/写磁头的位置,而不是相对于磁带上的归档位置。 例如,为了从多备份磁带归档复原第一个、第二个和第四个备份,-s 标志的各对应值将是 -s1-s2
-t 显示关于备份归档的信息。 如果归档采用文件系统格式,那么会将归档上找到的文件列表写入标准输出。 像在归档上一样,文件索引节点数量位于每个文件名之前。 显示的文件名相对于已备份的文件系统的根 (/) 目录。 如果 File 参数没有指定,那么列出归档上的所有文件。 如果使用 File 参数,那么仅列出那个文件。 如果 File 参数指的是一个目录,那么会列出该目录中包含的所有文件。 如果归档采用文件名格式,那么会将卷头中包含的信息写入标准错误。 此标志可用来确定归档是采用文件名格式还是采用文件系统格式。
-T 显示关于备份归档的信息。 如果归档采用文件名格式,那么会将卷头中包含的信息写入标准错误,并且会将归档上找到的文件列表写入标准输出。 对于文件名归档,会忽略 File 参数。 如果归档采用文件系统格式,那么行为与 -t 标志的行为相同。
-v 显示当复原文件名时的信息。 如果归档采用文件名格式,并且指定了 -x-T 标志,那么会以字节为单位显示文件的大小(按它存在于归档上的情况)。 目录,块或字符设备文件将以大小 0 进行归档。 符号链接与符号链接的大小一起列出。 硬链接用文件大小列出,即其归档方式。 一旦读取归档,会显示它们总的大小。 如果归档采用文件系统格式,那么会对目录归档成员与非目录归档成员加以区分。
-x 逐个地复原指定的文件(它们由 File 参数指定)。 如果 File 参数没有被指定,所有的归档成员会被恢复。 如果 File 参数是一个目录,并且归档采用文件名格式,那么仅会复原该目录。 如果 File 参数是一个目录,并且归档采用文件系统格式,那么会复原该目录中包含的所有文件。 由 File 参数指定的文件名必须与由 restore-T 命令显示的名称相同。 文件使用它们归档时的名称恢复。 如果文件名已通过使用相对路径名 (./filename) 来归档,那么会相对于当前目录复原文件。 如果归档采用文件系统格式,那么会相对于当前目录复原文件。

restore 命令自动建立任何所需的目录。 当您使用此标志来复原文件系统备份时,系统会提示您输入起始卷号。

当指定要进行归档抽取的文件时,restore 命令允许使用 shell 样式模式匹配元字符。 关于匹配元字符的规则与在 shell 路径名“globbing”中使用的规则相同,即:

* (星号)
匹配零个或多个字符,但不匹配 "." (句点) 或 "/" (斜杠)。
你说什么 (问号)
匹配任何单个字符,但不匹配 "." (句点) 或 "/" (斜杠)。
[ ](方括号)
与在方括号中括起的任何其中一个字符匹配。 如果一对由短划线分隔的字符包含在方括号内,那么该模式与任何在词汇上处于当前本地两个字符之间的字符匹配。 此外,还有一个 "." (句点) 或方括号内的 "/" (斜杠) 与 "." 不匹配 (句点) 或文件名中的 "/" (斜杠)。
\(反斜杠)
与紧跟其后的字符匹配,从而防止可能将它解释为元字符。
-XVolumeNumber 从多卷文件名备份的指定卷开始复原。 当启动 restore 命令时,该命令的行为与 -x 标志的行为类似。 -X 标志仅适用于文件名归档。
-y 当遇到磁带错误时继续恢复。 通常,restore 命令会请求输入继续。 在任一情况下,都会用零来替换读取缓冲区中的所有数据。 仅当归档采用文件系统格式时,-y 标志才适用。
-? 显示使用情况消息。

退出状态

本命令返回以下退出值:

描述信息
重大安全事件数量 成功完成。
> 0 发生错误。

安全性

可信AIX系统上,只有授权用户才能运行 "restore命令。
描述信息
aix.fs.manage.restore 运行此命令必需的。
RBAC 用户和可信AIX用户请注意:此命令可执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 要获取与此命令相关联的特权和权限的列表,请参阅 lssecattr 命令或 getcmdattr 子命令。

示例

  1. 要列出软盘设备 /dev/rfd0 上文件名归档或文件系统归档中文件的名称,请输入:
    restore -Tq
    此归档从 /dev/rfd0 缺省恢复设备中读取。 会显示该归档中包含的所有文件和目录的名称。 对于文件系统归档,文件名前面有文件的索引节点号,如它存在于归档上那样。 -q 标志告知 restore 命令第一个卷可用并且已准备好进行读取。 这样,不会提示您安装卷一。
  2. 为了恢复特定的文件,请输入:
    restore -xvqf myhome.bkup system.data
    此命令从归档 myhome.bkup 中抽取文件 system.data 到当前目录中。 此例中的归档位于当前目录中。 当使用 -T 标志时,必须按文件和目录名称的显示对其进行指定。 -v 标志会显示在进行抽取期间的信息。 此示例同时适用于文件名归档和文件系统归档。
  3. 要从文件名归档中复原特定目录以及该目录的内容,请输入:
    restore -xdvqf /dev/rmt0 /home/mike/tools
    -x 标志告知 restore 利用它们的文件名来抽取文件。 -d 指示 restore 抽取 /home/mike/tools 目录中的所有文件和子目录。 当使用 -T 标志时,必须按文件和目录名称的显示对其进行指定。 如果目录不存在,它们会被创建。
  4. 要从文件系统归档中复原特定目录以及该目录的内容,请输入:
    restore -xvqf /dev/rmt0 /home/mike/tools
    此命令根据文件名抽取文件。 当使用 -T 标志时,必须按文件和目录名称的显示对其进行指定。 如果目录不存在,它们会被创建。
  5. 要复原整个文件系统归档,请输入:
    restore -rvqf /dev/rmt0
    此命令会将磁带设备 /dev/rmt0 上归档的整个文件系统复原到当前目录中。 此例假定您位于要恢复的文件系统的根目录。 如果归档是一组增量文件系统归档的一部分,那么归档必须以由级别 0 开头的增量备份级别顺序(例如,012)复原。
  6. 为了从单卷、多备份磁带中恢复第五和第九个备份,请输入:
    restore -xvqs 5 -f/dev/rmt0.1
    restore -xvqs 4 -f/dev/rmt0.1
    第一条命令从由 /dev/rmt0.1 指定的多备份磁带上的第五个归档中抽取所有文件。 .1 标识符指定当打开它时,磁带设备不会收紧,当关闭它时,磁带设备不会反绕。 由于 -s 标志的行为,需要使用一个 no-rewind-on-close、no-retension-on-open 磁带设备。 第二个命令从第四个归档(相对于磁带上磁带头的当前位置)抽取所有的文件。 在复原第五个归档之后,磁带读/写磁头位于读取归档的位置。 要抽取磁带上第九个归档,必须将值 4 与 -s 标志一起指定。 这是因为 -s 标志是相对于在磁带上的位置而不是相对于磁带上的归档位置。 九号归档是磁带上当前位置开始的第四个归档。
  7. 为了恢复第四个备份(此备份开始于十个磁带多备份归档上的第六个磁带),放置第六个磁带到磁带机中并输入:
    restore -xcs 2 -f /dev/rmt0.1 /home/mike/manual/chap3
    假定第四个备份是第六个磁带上的第二个备份,那么指定 -s 2 会将磁带头推进到此磁带上的第二个备份的开头。 然后, restore 命令从归档复原指定的文件。 如果备份继续执行到后续卷上,并且没有复原文件,那么 restore 命令会指示您插入下一个卷,直至到达备份末尾。 -f 标志 指定了 no-rewind、no-retension 磁带设备名称。
    注: -s 标志指定相对于磁带机中插入的磁带的备份号,而不是相对于整个 10 磁带归档的备份号。
  8. 要提高流式磁带设备上的性能,请通过输入以下命令将 dd 命令传输到 restore 命令:
    dd if=/dev/rmt0 bs=64b | restore -xf- -b64
    dd 命令会通过使用 64 个块大小为 512 字节的块来从磁带读取归档并将归档写入标准输出。 restore 命令会通过使用 64 个块大小为 512 字节的块来读取标准输入。 由 dd 命令用于从磁带读取归档的块大小值必须是通过 backup 命令用于创建磁带的块大小的偶数倍。 例如,不能使用以下 backup 命令来创建此示例抽取的归档:
    find /home -print | backup -ivqf/dev/rmt0 -b64
    此示例仅适用于采用文件名格式的归档。 如果归档采用文件系统格式,那么 restore 命令必须包括 -B 标志。
  9. 要提高 9348 磁带单元型号 12 上 restore 命令的性能,可以通过输入以下命令来更改块大小:
    chdev -l DeviceName -a BlockSize=32k
  10. 为了恢复非稀疏数据库文件,请输入:
    restore  -xef  /dev/rmt0
  11. 为了恢复在归档前是稀疏的文件,请输入:
    restore  -xf  /dev/rmt0
  12. 为了从归档中仅恢复文件的许可权,请输入:
    restore -Pa -vf /dev/rmt0
  13. 为了从归档中仅恢复文件的 ACL 属性,请输入:
     restore -Pc -vf /dev/rmt0
  14. 为了查看目录和文件许可权,请输入:
    restore -Ta -vf /dev/rmt0 
  15. 要查看文件名归档的目录以及时间戳记和文件许可权,请输入:
    restore -Tl -vf /dev/rmt0
  16. 要查看文件系统归档的目录以及时间戳记和文件许可权,请输入:
    restore -tl -vf /dev/rmt0

文件

描述信息
/dev/rfd0 指定缺省恢复设备。
/usr/sbin/restore 包含 restore 命令。