1、Solaris 操作系统的备份和恢复实用工具概述本文回顾了一些在 Solaris 操作系统中可用的常见备份和恢复工具。这里所提供的例子可以使您立即开始使用一个实用工具,而不必理解其所有功能。掌握这些工具的一些知识对于普通的系统管理来说是至关重要的。这里所示的例子已在 Solaris 5.8 操作系统上测试,他们也可在其他版本的操作系统上工作。在本文中,我仅仅列出了这些命令中每一个的基本使用方法。如果您需要更多的信息,我建议您参考对每个实用工具进行更加详细探究的 man 页面。参见 Sun 产品信息站点()上的 Solaris 操作系统的 man 页面。更明确地说,本文介绍了以下备份和恢复实用工
2、具: tar dd cpio paxtar -创建磁带和文件存档,恢复文件和目录 tar 命令在很多 UNIX 平台上都可找到。它是一个用于将文件存档到磁带上的快速易用的工具。tar 也可以用于将多个文件存档为一个文件(也就是 tar 文件),使之可以移植到其他系统上使用。例如,如果需要,可以将整个用户主目录或安装目录复制到单个 tar 文件中,并在必要时将其移动到运行 HP-UX 的服务器上。tar 命令有很多可用的选项,但是我将只讨论用于创建、提取或恢复的三个选项,并列出 tar 文件内容的选项。tar 命令选项-c: 创建 tar 文件-t: 列出 tar 的内容-x: 提取或恢复 ta
3、r 文件内容-v: Verbose (显示 tar 所采取的动作)tar 命令的基本语法如下: tar 注意: 有时您将在一些 tar 命令例子中看到在选项前使用了破折号,这对于 tar 的正确运行不是必需的。 创建新的 tar 文件: % tarcvf filename.tar filelist在这里,filename.tar 是 tar 文件的名字。filelist 是想要备份的文件列表。可以使用通配符指定列表。 列出 tar 文件的内容:% tar tvf filename.tar filelist 在这里, filename.tar 可以被一个磁带设备文件所取代。例如:% tar cv
4、f filename.tar /dev/rmt/0mn 提取 tar 文件内容到当前位置:% tar xvf filename.tardd - 转换和复制文件dd 命令通常用于将整个文件系统复制到另一个文件系统,或者将硬盘驱动器的内容复制到另一块硬盘。dd 还可以用于将文件系统复制到磁带,反之亦可。dd 是一个相对较快的复制工具:它在传输数据时为数据创建一个精准的副本(字节对字节)。dd 可使用几个选项来指定缓冲区大小、块大小和数据转换。其基本的语法是:dd = = options下面的例子将整个 c0t1d0s2 的内容复制到第二块磁盘(c0t4d0s2)上,使用的块大小是 128。如果您有
5、可用的剩余磁盘空间并且希望有准备好的备份磁盘以在灾难发生时换出,这会工作得极佳。在这个例子中指定了 slice 2,因为它在 Solaris 操作系统中代表整个磁盘。% dd if=/dev/rdsk/c0t1d0s2 of=/dev/rdsk/c0t4d0s2 bs=128要将一台磁带设备上的内容复制到另一台上,使用下面例子所示的命令。(注意:必须有两台可用驱动器。)% dd if=/dev/rmt/#1drive of=/dev/rmt/#2drive有关 dd 的 man 页面给出了很多其他可用的选项。我建议您查看 dd 的 man 页面并且阅读 Notes 小节。在那里,您将发现 dd
6、 的一些限制,以及在从磁盘设备复制数据时使用裸字符设备的一个提示。cpio -拷入和拷出文件存档cpio 代表 “拷入,拷出”,用于从一个位置复制数据到另一个位置。使用 cpio 与使用其他 UNIX 实用工具相比更具有优势,包括: cpio 可以备份和恢复单独的文件而不只是所有文件系统。 cpio 在文件上创建的文件头信息较小,导致备份量较少。 tar 被限制在单台磁带设备上,cpio 则不同,它可以跨越多个磁带。cpio 运行在三种模式中: copy-out ( cpio -o)、 copy-in ( cpio -i)和 pass 模式 ( cpio -p),最后一种模式用于从磁盘上(而不
7、是磁带)的一个位置复制文件到另一个位置。下节列出了几个常用的选项。 cpio 命令选项除非另行指出,否则这些选项适用于 copy-out 和 copy-in 模式。-c: 以 ASCII 格式写入头信息 , 为了便于移植。-d: 创建所需的目录。-v: Verbose (处理时报告文件名)。-V: 与前面相同, 除了为每个复制的文件显示一个 “.”。-u: 用于无条件复制;旧文件将不会替换较新的文件。 -m: 保留以前的文件修改时间。该选项在复制目录时不起作用。要将一个目录及其子目录复制到磁带上,使用下面的例子:% ls -R | cpio -oVc /dev/rmt/0 上面的例子将把当前所
8、在的目录以及其中的所有子目录复制到位于 /dev/rmt/0 的磁带设备。-o 指定处于 copy-out 模式。 -V 选项代表 verbose 并将显示. 作为进度指示符。-c 选项创建一个 ASCII 头文件。要将内容从磁带复制回目录,使用下面的例子:% cpio -icvD /dev/rmt/0这个命令从文件“list”读取内容并将其复制到磁带设备。 % cpio -o /dev/rmt/0这个命令允许您指定要备份的文件。输入文件名后,按 Ctrl+D 键执行该命令。下面是一个例子:% cpio -o /dev/rmt/0filename.txtfile1name.txt利用 cpio
9、 恢复文件(Copy-In 模式)利用 cpio 的恢复过程与备份文件的过程类似。只是不使用 -o 指定 copy-out 模式,我们使用 -i 模式将数据从磁带复制回来。% cpio -icvum 指定 作为输入或输出存档的路径名。一个存档可以跨越多台设备。pax 提示您在存档中的下一设备的路径名 -i 交互地重命名文件或存档成员。 用于通过标准输入为可选择性的写或复制提供文件名-p 指定在提取或存档一个文件时所用的一个或多个文件特征选项 a 不保留文件访问时间e 保留一切:用户 ID、组 ID、文件模式位、文件访问时间和修改时间。m 不保留文件修改时间o 保留用户 ID 和组 IDP 保留
10、文件模式位v Verbose 模式-x 指定输出存档格式。默认格式是 ustar。 pax 可以支持 cpio、 tar、 bcpio、 ustar、 sv4crc 和 sv4cpio下面的例子将现在目录中的文件复制到一个磁带存档:% pax -w -f /dev/rmt/0注意如何使用 -w 选项将文件写入磁带。 -f 选项用于指定存档,这个例子中是磁带设备。下面的例子为一个存储在磁带设备 /dev/rmt/0 中的存档列出了一个详细内容表:% pax -v -f /dev/rmt/0我们又使用了 -f 选项指定 pax 存档的位置。因为我们希望列出存档,所以排除了 -r 或 -w 选项。这就使 pax 进入列表模式, -v 将详细地把发现的所有内容显示到标准的输出。