本章介绍使用 ufsdump 命令备份文件系统的过程。
有关这些过程的信息,请参见备份文件和文件系统(任务列表)。
有关执行备份的概述信息,请参见第 24 章,备份和恢复文件系统(概述)。
有关将各个文件备份到软盘的信息,请参见第 29 章,复制 UFS 文件和文件系统(任务)。
有关 ufsdump 命令的其他信息,请参见第 28 章,UFS 备份和恢复命令(参考)。
|
任务 |
说明 |
参考 |
|---|---|---|
|
1. 准备文件系统备份。 |
确定文件系统、备份类型以及用于备份的磁带设备。 | |
|
2. 确定备份文件系统所需的磁带数目。 |
确定文件系统的完整备份所需的磁带数目。 | |
|
3. 备份文件系统。 |
执行文件系统的完整备份,以获取所有文件的基线副本。 根据保留每天更改的文件副本对于站点是否重要,执行文件系统的增量备份。 |
备份文件系统的准备工作从规划开始,规划在第 24 章,备份和恢复文件系统(概述)中介绍并且包括选择以下内容:
要备份的文件系统
要执行的备份类型(完整或增量)
备份计划
磁带机
有关更多信息,请参见第 24 章,备份和恢复文件系统(概述)。
本节介绍备份文件系统之前可能需要执行的其他两项任务:
查找要备份的文件系统的名称
确定进行完整备份所需的磁带数目
显示 /etc/vfstab 文件的内容。
$ more /etc/vfstab |
查看与文件系统名称对应的 mount point 列。
备份文件系统时,请使用 mount point 列中列出的目录名称。
在本示例中,要备份的文件系统为根 (/)、/usr、/datab 和 /export/home。
$ more /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options /devices - /devices devfs - no - . . . /proc - /proc proc - no - /dev/dsk/c0t0d0s1 - - swap - no - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /usr ufs 1 no - /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /datab ufs 2 yes - /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /export/home ufs 2 yes - swap - /tmp tmpfs - yes - |
成为超级用户或承担等效角色。
估计备份大小(以字节为单位)。
# ufsdump [0]S file-system |
如果是文件系统的第一份备份,请使用 S 选项显示进行该备份估计所需的字节数。
如果不是文件系统的第一份备份,请使用 0S 选项显示进行该备份估计所需的字节数。
按照磁带容量划分估计大小,以确定所需的磁带数目。
有关磁带容量的列表,请参见表 24–5。
在本示例中,一个 150 MB 的磁带足以满足 489,472 字节的文件系统的需求。
# ufsdump S /export/home 489472 |
以下是执行备份的一般原则:
除非正在创建文件系统的快照,否则请使用单用户模式或取消挂载文件系统。有关 UFS 快照的信息,请参见第 26 章,使用 UFS 快照(任务)。
请注意,在目录级操作(如创建、删除和重命名文件)和文件级活动同时进行时备份文件系统,即表示某些数据不会包括在备份中。
可以从单个系统运行 ufsdump 命令,并通过远程 shell 或远程登录在网络中远程备份多组系统。此外,还可以将输出定向到磁带设备所在的系统。通常,磁带设备位于运行 ufsdump 命令的系统上,但这并不是必须的。
将文件备份到远程设备的另一种方式是将 ufsdump 命令的输出传输到 dd 命令。有关使用 dd 命令的信息,请参见第 29 章,复制 UFS 文件和文件系统(任务)。
如果是通过网络执行远程备份,则配备了磁带设备的系统在其 /.rhosts 文件中必须具有与使用该设备的每台客户机对应的项。另外,启动备份的系统必须包括在将要备份的每个系统的 /.rhosts 文件中。
以下是使用 ufsdump 命令备份文件系统的常规步骤。这些示例说明了选项和参数的特定用途。
成为超级用户或承担等效角色。
使系统进入运行级 S(单用户模式)。
例如:
# shutdown -g30 -y |
(可选)检查文件系统的一致性。
例如:
# fsck -m /dev/rdsk/c0t0d0s7 |
fsck -m 命令用于检查文件系统的一致性。例如,电源故障可能会使文件处于不一致的状态。有关 fsck 命令的更多信息,请参见第 22 章,检查 UFS 文件系统一致性(任务)。
如果需要将文件系统备份到远程磁带机,请执行以下步骤:
确定磁带机的设备名称。
缺省的磁带机为 /dev/rmt/0 设备。
将可写的磁带插入磁带机。
备份文件系统。
# ufsdump options arguments filenames |
可以备份文件系统或目录,也可以备份文件系统中的文件。有关备份各个文件的信息,请参见 tar(1) 或 cpio(1)。
以下示例说明如何使用最常见的 ufsdump 选项和参数:
有关其他 ufsdump 选项和参数的信息,请参见第 28 章,UFS 备份和恢复命令(参考)。
如果出现提示,请取出磁带并插入下一个磁带卷。
使用卷编号、转储级别、日期、系统名称、磁盘片和文件系统标记每个磁带。
通过按 Control-D 组合键使系统回到运行级 3。
检验备份是否成功。
# ufsrestore tf device-name |
以下示例说明如何执行根 (/) 文件系统的完整备份。本示例中的系统将在备份之前进入单用户模式。包括以下 ufsdump 选项:
0 指定 0 级转储(或完整备份)。
u 指定将 /etc/dumpdates 文件更新为此备份的日期。
c 标识盒式磁带设备。
f /dev/rmt/0 标识磁带设备。
/ 表示正在备份的文件系统。
例如:
# init 0
ok boot -s
# ufsdump 0ucf /dev/rmt/0 /
DUMP: Date of this level 0 dump: Wed Jul 28 16:13:52 2004
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c0t0d0s0 (starbug:/) to /dev/rmt/0.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 63 Kilobyte records
DUMP: Estimated 363468 blocks (177.47MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: Tape rewinding
DUMP: 369934 blocks (180.63MB) on 1 volume at 432 KB/sec
DUMP: DUMP IS DONE
DUMP: Level 0 dump on Wed Jul 28 16:13:52 2004
# ufsrestore tf /dev/rmt/0
2 .
3 ./lost+found
4 ./usr
5 ./export
6 ./export/home
7 ./var
8 ./var/sadm
9 ./var/sadm/install
10 ./var/sadm/install/admin
823 ./var/sadm/install/admin/default
11 ./var/sadm/install/logs
697 ./var/sadm/install/logs/SUNWmpatchmgr
905 ./var/sadm/install/logs/Additional_Software_install...
906 ./var/sadm/install/logs/Additional_Software_install...
13 ./var/sadm/install/.lockfile
14 ./var/sadm/install/install.db
824 ./var/sadm/install/special_contents
838 ./var/sadm/install/contents
.
.
.
# (Press Control-D to bring system to run level 3)
|
以下示例说明如何在单用户模式下执行根 (/) 文件系统的增量备份。包括以下 ufsdump 选项:
9 指定 9 级转储(或增量备份)。
u 指定将 /etc/dumpdates 文件更新为此备份的日期。
c 标识盒式磁带设备。
f /dev/rmt/0 标识磁带设备。
/ 表示正在备份的文件系统。
# init 0
ok boot -s
# ufsdump 9ucf /dev/rmt/0 /
DUMP: Date of this level 9 dump: Wed Jul 28 14:26:50 2004
DUMP: Date of last level 0 dump: Wed Jul 28 11:15:41 2004
DUMP: Dumping /dev/rdsk/c0t0d0s0 (starbug:/) to /dev/rmt/0.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 63 Kilobyte records
DUMP: Estimated 335844 blocks (163.99MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: 335410 blocks (163.77MB) on 1 volume at 893 KB/sec
DUMP: DUMP IS DONE
DUMP: Level 9 dump on Wed Jul 28 14:30:50 2004
# ufsrestore tf /dev/rmt/0
2 .
3 ./lost+found
5696 ./usr
11392 ./var
17088 ./export
22784 ./export/home
28480 ./opt
5697 ./etc
11393 ./etc/default
11394 ./etc/default/sys-suspend
11429 ./etc/default/cron
11430 ./etc/default/devfsadm
11431 ./etc/default/dhcpagent
11432 ./etc/default/fs
11433 ./etc/default/inetinit
11434 ./etc/default/kbd
11435 ./etc/default/nfslogd
11436 ./etc/default/passwd
11437 ./etc/default/tar
.
.
.
|
以下示例说明如何执行 /export/home/kryten 起始目录的完整备份。包括以下 ufsdump 选项:
0 指定这是 0 级转储(或完整备份)。
u 指定将 /etc/dumpdates 文件更新为此备份的日期。
c 标识盒式磁带设备。
f /dev/rmt/0 标识磁带设备。
/export/home/kryten 表示正在备份的目录。
# ufsdump 0ucf /dev/rmt/0 /export/home/kryten
DUMP: Date of this level 0 dump: Wed Jul 28 15:02:48 2004
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c0t0d0s7 (starbug:/export/home) to /dev/rmt/0.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 63 Kilobyte records
DUMP: Estimated 2412 blocks (1.18MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: 2392 blocks (1.17MB) on 1 volume at 4241 KB/sec
DUMP: DUMP IS DONE
# ufsrestore tf /dev/rmt/0
232 ./kryten
233 ./kryten/filea
234 ./kryten/fileb
235 ./kryten/filec
236 ./kryten/letters
237 ./kryten/letters/letter1
238 ./kryten/letters/letter2
239 ./kryten/letters/letter3
240 ./kryten/reports
241 ./kryten/reports/reportA
242 ./kryten/reports/reportB
243 ./kryten/reports/reportC
#
|
以下示例说明如何在单用户模式下将 Solaris 10 系统 (mars) 上的本地 /export/home 文件系统完整备份到远程 Solaris 10 系统 (earth) 上的磁带设备。包括以下 ufsdump 选项:
0 指定 0 级转储(或完整备份)。
u 指定将 /etc/dumpdates 文件更新为此备份的日期。
c 标识盒式磁带设备。
f earth:/dev/rmt/0 标识远程系统名称和磁带设备。
/export/home 表示正在备份的文件系统。
# ufsdump 0ucf earth:/dev/rmt/0 /export/home
DUMP: Date of this level 0 dump: Wed Jul 28 15:52:59 2004
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c0t0d0s7 (mars:/export/home) to earth:/dev/rmt/0.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 63 Kilobyte records
DUMP: Estimated 8282 blocks (4.04MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: Tape rewinding
DUMP: 8188 blocks (4.00MB) on 1 volume at 67 KB/sec
DUMP: DUMP IS DONE
DUMP: Level 0 dump on Wed Jul 28 15:52:59 2004
# ufsrestore tf earth:/dev/rmt/0
2 .
3 ./lost+found
4 ./kryten
5 ./kryten/filea
6 ./kryten/fileb
7 ./kryten/filec
8 ./kryten/letters
9 ./kryten/letters/letter1
10 ./kryten/letters/letter2
11 ./kryten/letters/letter3
12 ./kryten/reports
.
.
.
#
|