系统管理指南:设备和文件系统

第 28 章 UFS 备份和恢复命令(参考)

本章包含有关 ufsdumpufsrestore 命令的参考信息。

以下是本章中信息的列表。

有关执行备份的概述信息,请参见第 24 章,备份和恢复文件系统(概述)

有关备份任务的信息,请参见第 25 章,备份文件和文件系统(任务)

ufsdump 命令的工作原理

备份文件系统时,ufsdump 命令将执行两遍操作。在第一遍操作中,此命令将扫描文件系统的原始设备文件,并在内存中生成一个由目录和文件组成的表。然后,此命令会将该表写入备份介质。在第二遍操作中,ufsdump 命令将按数字顺序遍历 inode,读取文件内容并将数据写入备份介质。

确定设备特征

ufsdump 命令只需要了解适当的磁带块大小以及检测介质结尾的方式。

检测介质结尾

ufsdump 命令可写入大小固定的记录序列。当 ufsdump 命令收到通知,得知只写入了某个记录的一部分时,即假定已经到达该介质的物理结尾。此方法适用于大多数设备。如果设备无法通知 ufsdump 命令仅写入了部分记录,则当 ufsdump 命令尝试写入其他记录时会出现介质错误。


注 –

DAT 设备和 8 毫米磁带设备会检测介质结尾,而盒式磁带设备和 1/2 英寸磁带设备则不会检测介质结尾。


ufsdump 命令将自动检测大多数设备的介质结尾。因此,通常不需要使用 -c-d-s-t 选项来执行多卷备份。

如果 ufsdump 命令不了解设备检测介质结尾的方式,则需要使用介质结尾选项。

为确保与 restore 命令兼容,大小选项仍然可以强制 ufsdump 命令在到达当前磁带或软盘的结尾之前转至下一个磁带或软盘。

使用 ufsdump 命令复制数据

ufsdump 命令仅从原始磁盘片中复制数据。如果文件系统仍然处于活动状态,则很可能不会复制内存缓冲区中的任何数据。通过 ufsdump 命令执行的备份不会复制空闲块,也不会生成磁盘片的映像。如果符号链接指向其他片上的文件,则会复制该链接本身。

/etc/dumpdates 文件的作用

ufsdump 命令与 -u 选项结合使用时,可以维护和更新 /etc/dumpdates 文件。/etc/dumpdates 文件中的每行都将显示以下信息:

例如:


# cat /etc/dumpdates

/dev/rdsk/c0t0d0s0               0 Wed Jul 28 16:13:52 2004

/dev/rdsk/c0t0d0s7               0 Thu Jul 29 10:36:13 2004

/dev/rdsk/c0t0d0s7               9 Thu Jul 29 10:37:12 2004

执行增量备份时,ufsdump 命令将检查 /etc/dumpdates 文件以找到下一个较低转储级别的最近一次备份的日期。然后,此命令将从该较低级别备份日期以来修改的所有文件复制到介质。备份完成后,描述刚完成的备份的新信息行将取代描述该级别前一次备份的信息行。

请使用 /etc/dumpdates 文件来验证备份是否正在进行。如果您的设备出现了问题,则此验证特别重要。如果由于设备故障无法完成备份,则不会在 /etc/dumpdates 文件中记录备份。

如果需要恢复整个磁盘,请检查 /etc/dumpdates 文件中的最近的备份日期和级别列表,以便可以确定恢复整个文件系统所需的磁带。


注 –

/etc/dumpdates 文件是可编辑的文本文件。但是,如果要编辑该文件,请自担风险。如果对文件所做的更改与归档文件磁带不匹配,则可能无法找到所需的磁带(或文件)。


备份设备 (dump-file) 参数

dump-file 参数(与 -f 选项对应)指定备份目标。该目标可以为以下设备之一:

当目标不是缺省的本地磁带机 /dev/rmt/0 时,请使用此参数。如果使用 -f 选项,则必须为 dump-file 参数指定值。


注 –

dump-file 参数还可以指向本地磁盘或远程磁盘上的文件。如果操作有误,则错误使用情况会充满整个文件系统。


本地磁带机或软盘驱动器

通常,dump-file 参数将为磁带设备或软盘指定原始设备文件。当 ufsdump 命令写入输出设备时,将创建一个可能跨多盒磁带或多个软盘的单个备份文件。

通过使用设备缩写,可以指定系统上的磁带设备或软盘。第一个设备始终为 0。例如,如果您具有 SCSI 磁带控制器和一个使用中密度格式的 QIC-24 磁带机,请使用以下设备名称:

/dev/rmt/0m

指定磁带设备名称时,还可以在名称的结尾处键入字母 "n",以指示完成备份后磁带机不应该反绕。例如:

/dev/rmt/0mn

如果要将多个文件置于磁带上,请使用“不反绕”选项。如果备份期间空间不足,则在 ufsdump 命令要求新磁带之前,该磁带不会反绕。有关设备命名约定的完整说明,请参见备份设备名称

远程磁带机或软盘驱动器

可以使用语法 host:device 来指定远程磁带设备或远程软盘。如果本地系统上的超级用户有权访问远程系统,则 ufsdump 命令将写入远程设备。如果您通常以超级用户身份运行 ufsdump 命令,则远程系统上的 /.rhosts 文件中必须包括本地系统的名称。如果以 user@host:device 格式指定设备,则 ufsdump 命令将尝试以指定用户的身份访问远程系统上的设备。在这种情况下,远程系统上的 /.rhosts 文件中必须包括指定的用户。

对于设备所在的系统(而不是用于运行 ufsdump 命令的系统),请使用与操作系统匹配的设备的命名约定。如果驱动器所在的系统使用的是以前的 SunOS 发行版(例如 4.1.1),请使用 SunOS 4.1 设备名称(例如 /dev/rst0)。如果系统正在运行 Solaris 软件,请使用 SunOS 5.9 约定(例如 /dev/rmt/0)。

借助 ufsdump 命令使用标准输出

将连字符 (-) 指定为 dump-file 参数时,ufsdump 命令将写入标准输出。


注 –

dump-file 参数为标准输出时,-v 选项(验证)不起作用。


可以在管道中使用 ufsdumpufsrestore 命令来复制文件系统,具体操作为:使用 ufsdump 命令写入标准输出,并使用 ufsrestore 命令读取标准输入。例如:


# ufsdump 0f - /dev/rdsk/c0t0d0s7 | (cd /home; ufsrestore xf -)

指定要备份的文件

在命令行中,必须始终以 filenames 作为最后一个参数。此参数指定备份的来源或内容。

对于文件系统,请按照以下方式指定原始设备文件:

/dev/rdsk/c0t0d0s7

只要文件系统对应的项存在于 /etc/vfstab 文件中,即可通过其挂载点目录(例如 /export/home)来指定文件系统。

有关设备命名约定的完整说明,请参见备份设备名称

对于各个文件或目录,请键入一个或多个名称(以空格分隔)。


注 –

使用 ufsdump 命令备份一个或多个目录或文件(而不是整个文件系统)时,将执行级别 0 备份。增量备份不适用。


指定磁带特征

如果未指定任何磁带特征,则 ufsdump 命令将使用一组缺省值。可以指定磁带盒 (c)、密度 (d)、大小 (s) 以及磁轨数 (t)。请注意,您可以按照任意顺序指定选项,只要其后的参数与选项顺序匹配即可。

ufsdump 命令的限制

ufsdump 命令不能执行以下操作:

指定 ufsdump 命令选项和参数

本节介绍如何为 ufsdump 命令指定选项和参数。ufsdump 命令的语法如下:


/usr/sbin/ufsdump options arguments filenames
options

包含一个字母的选项名称的单个字符串。

arguments

标识选项参数,并且可能包含多个字符串。选项字母必须与其关联参数顺序相同。

filenames

标识要备份的文件。这些参数必须始终位于最后,每个参数以空格分隔。

缺省的 ufsdump 选项

如果运行不含任何选项的 ufsdump 命令,请使用此语法:


# ufsdump filenames

缺省情况下,ufsdump 命令将使用以下选项和参数:


ufsdump 9uf /dev/rmt/0 filenames

这些选项以其首选密度对缺省磁带机执行级别 9 增量备份。

有关 ufsdump 选项的说明,请参见 ufsdump(1M)

ufsdump 命令和安全问题

如果您担心安全性,则应执行以下操作:

指定 ufsrestore 选项和参数

ufsrestore 命令的语法如下:


/usr/sbin/ufsrestore options arguments filenames
options

包含一个字母的选项名称的单个字符串。必须且只能选择以下选项之一:irRtx。有关 ufsrestore 选项的说明,请参见 ufsrestore(1M)

arguments

跟在选项字符串后与选项匹配的参数。选项字母必须与其关联参数顺序相同。

filenames

指定要作为 xt 选项的参数进行恢复的一个或多个文件。这些参数必须始终位于最后,且以空格分隔。