一、概述
1、备份文件系统的原因
备份文件是最重要的系统管理功能之一。应该定期按计划执行备份,以防止因以下类型的问题造成数据丢失:
(1)系统崩溃
(2)无意中删除文件
(3)硬件故障
(4)自然灾难,如火灾、飓风或地震
(5)重新安装或升级系统时出现问题
应该备份对用户非常重要的所有文件系统,包括频繁更改的文件系统。
2、可以使用 ufsdump 命令执行完整备份或增量备份。可以使用 fssnap 命令创建文件系统的临时映像。
(1)完整备份:复制完整的文件系统或目录,系统必须处在S单用户级别。所有数据都处于一个位置中 ,需要大量备份磁带,写入时间很长。
(2)快照:创建文件系统的临时映像,系统可以处于多用户模式下,创建快照时,系统性能可能会降低。
(3)增量:仅复制指定文件系统中自以前某一次备份以来发生更改的那些文件,更容易检索文件系统中的小的更改,查找包含文件的增量磁带会需要较长时间。可能必须返回上一次的完整备份。
3、使用转储级别创建增量备份
在 ufsdump 命令中指定的转储级别 (0–9) 可确定要备份的文件。转储级别 0 可创建完整备份。级别 1–9 用于计划增量备份,但没有明确的含义。级别 1–9 只是用于计划累积备份或独立备份的一系列编号。级别 1–9 所具有的唯一含义就是表示这些编号彼此之间的相互关系,即指示较大编号或较小编号。较小的转储编号会始终重新启动完整备份或累积备份。以下示例说明了使用级别 1–9 的增量转储过程的灵活性。
示例-每日增量备份的转储级别
在以下示例说明的计划中,将仅备份一天内不同磁带上的工作结果。这种类型的备份称为每日增量备份。在这种情况下,在一周内会使用连续的转储级别编号 (3、4、5、6),在星期五使用较小的编号 (2)。星期五的较小编号会重新启动备份的处理。
二、使用 ufsdump 命令备份文件系统
1、显示 /etc/vfstab 文件的内容。
$ more /etc/vfstab
查看与文件系统名称对应的 mount point 列。
备份文件系统时,请使用 mount point 列中列出的目录名称。例:
$ more /etc/vfstab
#device mount FS fsck mount
#to mount to fsck point type pass at boot options
/dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /export/home ufs 2 yes -
2、确定进行完整备份所需的磁带数目或磁盘大小
成为超级用户或承担等效角色。
估计备份大小(以字节为单位)。
# ufsdump [0]S file-system
如果是文件系统的第一份备份,请使用 S 选项显示进行该备份估计所需的字节数。
如果不是文件系统的第一份备份,请使用 0S 选项显示进行该备份估计所需的字节数。
示例
# ufsdump S /export/home
489472
3、进入单用户模式
成为超级用户或承担等效角色。
使系统进入运行级 S(单用户模式)。
例如:
# shutdown -g30 -y 或 # init S
(可选)检查文件系统的一致性。
例如:
# fsck -m /dev/rdsk/c0t0d0s7
fsck -m 命令用于检查文件系统的一致性。例如,电源故障可能会使文件处于不一致的状态。
4、备份文件系统。
# ufsdump options arguments filenames
通过按 Control-D 组合键使系统回到运行级 3。
检验备份是否成功。
# ufsrestore tf device-name
5、示例:
# init 0
ok boot -s
# ufsdump 0ucf /dev/rmt/0 /
0 指定 0 级转储(或完整备份)。
u 指定将 /etc/dumpdates 文件更新为此备份的日期。
c 标识盒式磁带设备。
f /dev/rmt/0 标识磁带设备。
/ 表示正在备份的文件系统。
# ufsrestore tf /dev/rmt/0 //检查所做的备份
6、查看备份
当 ufsdump 命令与 -u 选项结合使用时,可以维护和更新 /etc/dumpdates 文件。
/etc/dumpdates 文件中的每行都将显示以下信息:
备份的文件系统
上次备份的转储级别
备份的周日期、日期和时间
# cat /etc/dumpdates
/dev/rdsk/c0t0d0s0 0 Wed Jul 28 16:13:52 2004
三、ufsrestore 命令恢复文件和文件系统
1、命令执行过程及注意事项
ufsrestore 命令可以将文件从使用 ufsdump 命令创建的备份复制到磁盘上的当前工作目录下。
可以使用ufsrestore 命令从级别 0 转储和其后的增量转储重新装入整个文件系统分层结构。
还可以使用此命令从任何备份磁带恢复一个或多个单独的文件。
如果以超级用户身份运行 ufsrestore 命令,则可按原始属主、最后修改时间和模式(权限)恢复文件。
恢复文件和目录时,ufsrestore 命令将在当前工作目录中重新创建文件分层结构。
例如:
从 /export/doc/books 目录(其中 /export 是文件系统)备份的文件将相对于 /export 进行保存。换句话说,books 目录中的 book1 文件将在磁带上被另存为 ./doc/books/book1。此后,如果将。/doc/books/book1 文件恢复到 /var/tmp 目录,则该文件将被恢复到 /var/tmp/doc/books/book1。
恢复各个文件和目录时,应该将它们恢复到临时位置,如 /var/tmp 目录。验证文件后,可以将它们移至其正确位置。但是,可以将各个文件和目录恢复到其原始位置。如果执行此操作,请确保不会使用备份磁带中的旧版本覆写新文件。
为避免与其他用户冲突,您可能需要创建并转至一个子目录(如 /var/tmp/restore),将文件恢复到该子目录中。
如果要恢复分层结构,应该将文件恢复到一个临时目录中,这个临时目录必须位于将驻留这些文件的那个文件系统上。然后,在恢复文件之后,便可以使用 mv 命令移动其所属的整个分层结构。
注 –
请勿在 /tmp 目录中恢复文件,即使是临时恢复也不允许。/tmp 目录通常作为 TMPFS 文件系统进行挂载。TMPFS 不支持 UFS 文件系统属性(如 ACL)。
2、以交互方式恢复文件
转至用于临时将文件恢复到的目录。
# cd /var/tmp
启动交互式恢复。
# ufsrestore if /dev/rmt/n
此时将显示某些提示性消息和 ufsrestore> 提示符。
创建要恢复的文件的列表。
列出目录的内容。
Ufsrestore> ls [directory-name]
转至目录。
Ufsrestore> cd directory-name
创建要恢复的文件和目录的列表。
Ufsrestore> add filenames
(可选的)从要恢复的文件列表中删除任何目录或文件(如果必要)。
Ufsrestore> delete filename
(可选的)在恢复文件时显示文件名称。
Ufsrestore> verbose
恢复文件。
Ufsrestore> extract
ufsrestore 命令将询问您要使用的卷编号。
键入对应的卷编号并按回车键。如果您只有一个卷,请键入 1 并按回车键。
Specify next volume #: 1
列表中的文件和目录将被提取并恢复到当前工作目录。
要维护当前目录的模式,请在 set owner/mode 提示符下输入 n。
set owner/mode for `.’ [yn] n
ufsrestore 命令执行其最后的清除时必须等待。
退出 ufsrestore 程序。
Ufsrestore> quit
随后将显示 shell 提示符。
验证恢复的文件。
列出恢复的文件和目录。
# ls –l
此时将显示文件和目录的列表。
检查该列表,以确保列表中指定的所有文件和目录都已恢复。
将文件移至正确的目录。
示例说明如何从备份磁带中提取 /etc/passwd 和 /etc/shadow 文件。
# cd /var/tmp
# ufsrestore if /dev/rmt/0
ufsrestore> ls
ufsrestore> cd etc
ufsrestore> add passwd shadow