当前位置: 首页>>技术教程>>正文


什么是最可靠的存档格式?

问题描述

我想用一些我很少需要访问的文档来备份一些旧文件夹。为此,我想将它们全部保存在一个存档中。由于这将是备份,因此格式应适合该目的。因此,底线是:

哪一种是Ubuntu中最可靠/最可靠的存档格式?

最佳回答

这取决于。最受欢迎的两个选项是tarball和zip文件,但它们都缺少:

  • 对于大多数Linux用户,.tar tape archives是一个非常受欢迎的选项。它保留UNIX文件权限(这对于备份很重要)和硬链接。我测试过的每个Linux发行版都支持out-of-the框,以及一些Windows程序(如7-zip)。然而,对于back-up use-case,tar具有explained by the Duplicity developers的一些限制和缺点。这可能非常慢:即使要获取存储在档案中的文件名列表,也必须读取整个档案。它还无法处理某些较新文件系统所具有的详细meta-data。

  • .zip zip files既充当存档格式又充当压缩格式。为了提高速度,您可以完全禁用压缩。 Zip文件比磁带存档更好,因为它们存储一种目录表,使程序可以快速跳转到需要提取的特定文件。它还存储每个文件内容的校验和,以方便检测文件损坏。 Zip文件非常受欢迎,不幸的是,它们不存储简单的文件权限,因此不适用于Linux back-ups。

遗憾的是,这里还缺少两个选项:

  • .7z 7z compressed archives具有一些出色的功能,例如加密和支持非常大的文件。不幸的是,它不存储UNIX文件权限,因此不适用于Linux back-ups。

  • .ar classic UNIX archives是tar归档文件的前身,并且具有与tar归档文件相同的限制。

我认为,对于Linux back-ups,没有完全健壮的back-up归档格式,没有一种足以保证我信任的well-known。

克服每种格式局限性的一种方法是将它们组合在一起:例如,将每个文件分别存档在tar存档中,然后将所有这些tarball存档在一个zip文件中。

如果您想要真正强大的back-up,则应该考虑以下解决方案:

  • back-up直接放在外部硬盘上,源和目标上具有相同的文件系统。这样可以确保您将按预期存储每个文件的权限和元数据。 (顺便说一句,文件的所有者和组所有者使用其用户标识和组标识号(而不是名称)存储。)

  • 使用full-disk成像和克隆软件,例如CloneZilla。您无法从这些back-ups中的一个中检索一个文件,但是可以绝对确定已保存了所有可能的文件。

记住,永远记住:只有尝试恢复它们,您才能对back-ups充满信心。如果最坏的情况发生了,并且您的源hard-drive被完全销毁了,您能否将还原到新hard-drive的所有内容还原?它会按预期工作吗?尝试将back-up还原到新的hard-disk,然后尝试从该hard-disk运行几天。如果发现任何缺失,则说明您的back-up不够彻底。

还请考虑将back-ups保存在何处。您需要至少一些back-ups与源磁盘不在同一建筑物中,以保护自己免遭盗窃或火灾。对此的一些选择是云或朋友的房子。

次佳回答

压缩文件(.tar个文件)将是解决方法。使用gzip压缩格式可减少压缩量,但提高速度。 bzip2慢得多,但压缩率更高。对于二进制数据,没有太大的区别。

使用gzip压缩来压缩目录的命令:

tar czf /path/to/save/backup.tar.gz directory-to-backup

要在保留文件权限的同时提取gzip-compressed tar包:

tar xzpf /path/to/save/backup.tar.gz

z替换为j以进行bzip2压缩,并在v之前添加v(例如czvfxzpvf)以在归档/提取文件时打印文件名。

第三种回答

我选择7zip(sudo apt-get install p7zip-full)。从我的角度来看,它似乎是理想的压缩存档器。

我不喜欢经典的tarball,因为它们笨拙,因为要压缩整个tar文件(这可能在幕后发生,但仍然会发生),只是为了查看档案目录。

第四种回答

尽管不那么为人所知或广泛使用,但我还是倾向于使用afio,因为它可以单独压缩文件,从而可以在损坏的情况下进行恢复。通过aptitude或类似方式安装。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10948.html,未经允许,请勿转载。