首页 > 代码库 > dump、cpio、tar、dd四种备份工具比较
dump、cpio、tar、dd四种备份工具比较
原文 http://blog.csdn.net/ether_lai/article/details/12656219
dump
dump可执行文件系统增量备份的存储操作 ,dump 可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。dump 可以执行类似 tar 的功能。然而, dump 倾向于考虑文件系统而不是个别的文件 。
配合 dump 的程序是 restore ,它用于从转储映像还原文件。
restore 命令执行转储的逆向功能。可以首先还原文件系统的完全备份,而后续的增量备份可以在已还原的完全备份之上覆盖。可以从完全或部分备份中还原单独的文件或者目录树。
dump 和 restore 都能在网络上进行备份 ,因此您可以通过远程设备进行备份或还原。 dump 和 restore 使用磁带驱动器和提供广泛选项的文件设备。然而, 两者都仅限用于 ext2 和 ext3 文件系统。如果使用的是 JFS、Reiser 或者其他文件系统,您将需要其他的实用工具,比如 tar 。
cpio
如果没有 dump 指令或者 dump 版本不符所需, 则 cpio 是您的下一个好选择。cpio 比其它备份工具存在的时间久,且具有一些其它工具所缺乏的重要特性。
dump 有而 cpio 无 :
◆无需使用find命令搭配;
◆备份完后不改变资料的atime及ctime;
◆以互动方式执行资料恢复,如restore的选项-i。
cpio 是一个非常有用的备份工具,它最大的不同处,是 可以备份从标准输入( stdin )而来的的档案 。 目前有些新版的 tar 支持 从标准输入来的档案备份,但大部份尚未有此功能。
为什么cpio较不常被使用?
cpio有时支持 I 及 O;有的版本则无。如果将 cpio 每种版本的选项累计,则有近 40 个选项, 甚至有些使用同一字母的参数,在不同版本的 Unix 有不同的意义。 但您只要使用在大部份平台皆标准的选项,那么,cpio 几乎与 tar 一般简单好用。
tar
如果需要定期备份整个作业系统,dump 可能是最好的选择。其次是 cpio, 因为它 与 find 搭配 执行变动备份 ( incremental backup )。如果您像大部份的人一般,只为了将资料做一次完整的备份,那么就不需要定期或变动备份等功能。 例如,您可能希望快速地备份使用者 /home 目录。您可能想要删除使用者的一大群目录与档案, 但唯一可让使用者接受的备份方式,是将其资料全部写入 磁带或光盘内储存并交给他。 因此您不在乎 atime, 不需定期做变动备份, 只希望将一堆资料放到备份媒体上,而且也希望他人可以很容易地将资料从备份中取出, 在这种情况下,tar 会是最佳选择,且tar支持gzip与bzip2的压缩 。
cpio 有而大部份的 tar 无 ( GNU tar 没有这些限制),例如:
◆可以备份来自stdin的档案;
◆当备份完成时重新设定档案的atime,尽管这会改变其ctime。
dd
大部份的人不常使用 dd 来作备份, 它是一个相当低级的指令, 可将资讯内涵的每个比特( bit )原封不动地从一个地方搬到另一个地方, 它不管也无需知道备份资料的结构。 dd可备份分区或磁盘或其中部分, 因为dd可读取磁盘的扇区表面的数据,因此不同于 dump,tar, 及 cpio, 它不可以拷贝一群文件至储存媒体 , 只可以拷贝一个文件或一个文件的部份 , 甚至可以在资料修改中途将资料 从标准输入( stdin )拷贝至标准输出(stdout ) 。即使 dd 可以拷贝单一档案,但其对文件或文件内容是一无所知的, 它纯粹只是从一个地方搬运文件的比特内容至另一个地方而已。
dd 是一个文件系统复制实用工具,它产生文件系统的二进制副本 。dd 还可用于产生硬盘驱动器的映像,类似于使用诸如 Symantec 的 Ghost 这样的产品。然而,dd 不是基于文件的,因此您只能使用它来将数据还原到完全相同的硬盘驱动器分区。
dump、cpio、tar、dd四种备份工具比较