四大Linux备份工具比较与操作实例(1)


标准的UNIX系统皆有提供基本的备份工具,不同的备份工具有不同的差异。dump,cpio,tar及dd,dump及restore通常是最好的选择。其次是cpio,但是它比tar来的不亲和些;tar则比dump或cpio更容易使用。如果希望使用tar或cpio备份raw devices或执行异地备份,那么dd是你的另一个选择。

dump

dump 可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。dump 可以执行类似 tar 的功能。然而,dump 倾向于考虑文件系统而不是个别的文件。下面是引自 dump 手册文件中的内容:“dump 检查 ext2 文件系统上的文件,并确定哪些文件需要备份。这些文件将出于安全保护而被复制到给定的磁盘、磁带或其他存储媒体上,大于输出媒体容量的转储将被划分到多个卷。在大多数媒体上,容量是通过一直写入直至返回一个 end-of-media 标记来确定的。”

配合 dump 的程序是 restore ,它用于从转储映像还原文件。

restore 命令执行转储的逆向功能。可以首先还原文件系统的完全备份,而后续的增量备份可以在已还原的完全备份之上覆盖。可以从完全或部分备份中还原单独的文件或者目录树。

dump 和 restore 都能在网络上运行,因此您可以通过远程设备进行备份或还原。 dump 和 restore 使用磁带驱动器和提供广泛选项的文件设备。然而,两者都仅限用于 ext2 和 ext3 文件系统。如果使用的是 JFS、Reiser 或者其他文件系统,您将需要其他的实用工具,比如 tar 。

cpio

如果没有 dump 指令或者 dump 版本不符所需, 则 cpio 是您的下一个好选择。cpio 比其它备份工具存在的时间久,且具有一些其它工具所缺乏的重要特性。 但首先需说明的是,有些功能 dump 有提供而 cpio 则无,如下:

◆无需使用touch或find档案,即可执行变动备份incremental backup);

◆备份完后不改变资料的atime及ctime;

◆以互动方式执行资料恢复,如restore的选项-i。

cpio 是一个非常有用的备份工具,它最大的不同处,是可以备份从标准输入 stdin )而来的的档案。 目前有些新版的 tar 支持 从标准输入来的档案备份,但大部份尚未有此功能。

为什么cpio较不常被使用?

如果 cpio 如此好用,为何 tar 却比较流行?最可能的理由是同样的功能,tar 比 cpio 较简单易用也较标准)。 例如:每个版本的 tar 都支持 tar cf device 及 tar xf device, 然而 cpio有时支持 I 及 O;有的版本则无。如果将 cpio 每种版本的选项累计,则有近 40 个选项, 甚至有些使用同一字母的参数,在不同版本的 Unix 有不同的意义。 但您只要使用在大部份平台皆标准的选项,那么,cpio 几乎与 tar 一般简单好用。

tar

如果需要定期备份整个作业系统,dump 可能是最好的选择。其次是 cpio, 因为它可与 find 搭配执行变动备份 incremental backup )。如果您像大部份的人一般,只为了将资料做一次完整的 备份,那么就不需要定期或变动备份等功能。 例如,您可能希望快速地备份使用者 /home 目录。您可能想要删除使用者的一大群目录与档案, 但唯一可让使用者接受的备份方式,是将其资料全部写入 磁带或光盘内储存并交给他。 因此您不在乎 atime,不需定期做变动备份, 只希望将一堆资料放到备份媒体上,而且也希望他人可以很容易地将资料从备份中取出, 在这种情况下,tar 会是最佳选择。

有一些功能是 cpio 有而大部份的 tar 则无的 GNU tar 没有这些限制),例如:

◆可以备份来自stdin的档案;

◆当备份完成时重新设定档案的atime,尽管这会改变其ctime。

虽然 tar 的历史并不比 cpio 来得久,但它却得到较大的欢迎,这也正是它的特点之一。几乎每个人都知道如何读 tar 档,即使不会也很容易学。 有些程序如 WinZip, 甚至可以自动地解开一个tar 档或压缩过的 tar 档以读取其内容 WinZip 却无法开启cpio 档)。tar 也较 dump 或 cpio 在 Unix 平台间具可性。

dd

大部份的人不常使用 dd 来作备份, 它是一个相当低级的指令, 可将资讯内涵的每个位元 bit )原封不动地从一个地方搬到另一个地方, 它不管也无需知道备份资料的结构。 因此不同于 dump,tar, 及 cpio, 它不可以拷贝一群档案至储存媒体, 只可以拷贝一个档案或一档案的部份或 partition 或部份 partition,甚至可以在资料修改中途将资料从标准输入 stdin )拷贝至标准输出stdout )。即使 dd 可以拷贝单一档案,但其对档名或档案内容是一无所知的, 它纯粹只是从一个地方搬运档案的位元内容至另一个地方而已。

dd 是一个文件系统复制实用工具,它产生文件系统的二进制副本。dd 还可用于产生硬盘驱动器的映像,类似于使用诸如 Symantec 的 Ghost 这样的产品。然而,dd 不是基于文件的,因此您只能使用它来将数据还原到完全相同的硬盘驱动器分区

这种方式看似相当简单, 相对地它也相当有弹性,可以在不考虑资料格式之下执行拷贝动作, 因此它可在两个不同平台间作资料转换。 例如:从 EBCDIC 到 ASCII,或 Oracle 允许资料以档案系统下的档案形式存在, 亦可以直接放在原始磁盘区块上,然而备份程序无法预测管理员会以何种方式存放资料, 故采用富弹性的dd 作自动备份,甚至备份结果是混合此两种资料形式也无妨,亦即有些在档案系统中,有些则在原始磁盘上。 如此,管理员可依资料应用特性决定其存放形式,可见 dd 所提供的弹性好处之大。

其它备份工具

尚有其它较不为人知或只出现在某些平台的备份工具, 其中较常使用的包括:

◆cp命令:cp是copy的缩写,用于复制文件;目录。标准的 cp 命令可用于复制整个目录树。该选项将对非标准的文件执行未知的操作。有些 UNIX 变种和 GNU cp 工具支持 -R 选项,使用该选项可以正确地复制命名管道、链接和其他的文件。

◆pax:pax是Portable Archive eXchange的缩写,可产生一便携式的备份,此备份格式符合    IEEE    Std.1003.1-1988     的Archive/Interchange File Format。 pax 亦可读写一些其它的档案格式如 tar 或 cpio。 正如 Unix 世界的许多现象般,pax也有一群拥护者认为它是备份工具中最好的选择。

◆fbackup:fbackup只有HP-UX提供且属于HP的System Administration Menu SAM )的工具之一,使用 fbackup 作的备份, 只 能在另一个 HP-UX 主机上使用 frecover 读取之。 仅管fbackup 比传统的 tar 及 cpio 有较多的功能, 但它缺乏可携性的缺点是非常使人诟病的。 即使您无法用 SAM 来操作 dump, cpio 或 tar,但这三个指令的可携带特性,绝对值得您花较多的心力去使用它们。


相关内容