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


25

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

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

Answers:


20

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

  • .tar 对于大多数Linux用户而言,磁带存档是一个非常受欢迎的选择。它保留UNIX文件权限(这对于备份很重要)和硬链接。我测试过的每个Linux发行版以及一些Windows程序(例如7-zip)都支持开箱即用。但是,正如Duplicity开发人员解释的那样,tar对于备份用例具有一些局限性和缺点。这可能非常慢:即使要获取存储在档案中的文件名列表,也必须读取整个档案。它还不处理某些较新文件系统具有的详细元数据。
  • .zip zip文件既可作为存档格式又可作为压缩格式。为了提高速度,您可以完全禁用压缩。Zip文件比磁带存档更好,因为它们存储一种目录表,使程序可以快速跳转到需要提取的特定文件。它还存储每个文件内容的校验和,以方便检测文件损坏。Zip文件非常受欢迎,不幸的是,它们不存储简单的文件权限,因此不适合Linux备份。

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

  • .7z 7z压缩的存档具有一些出色的功能,例如加密和支持非常大的文件。不幸的是,它不存储UNIX文件权限,因此不适合Linux备份。
  • .ar 传统的UNIX归档文件是tar归档文件的前身,并且具有与tar归档文件相同的局限性。

我认为,没有用于Linux备份的完全健壮的备份存档格式,没有一种众所周知的方式可以保证我的信任。

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

如果您想要一个真正强大的备份,则可能应该考虑以下解决方案:

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

  • 使用全盘映像和克隆软件,例如CloneZilla。您无法从这些备份之一中检索一个文件,但可以绝对确定已保存了所有可能的文件。

记住,永远记住:只有尝试恢复备份时,才能对备份充满信心。如果最坏的情况发生了,并且源硬盘驱动器已被完全销毁,是否可以将还原到新硬盘的所有内容还原?它会按预期工作吗?尝试将备份还原到新硬盘,然后尝试从该硬盘运行几天。如果您发现缺少任何内容,则说明您的备份不够彻底。

还考虑一下要保留备份的位置。您至少需要一些与源磁盘不在同一建筑物中的备份,以保护自己免遭盗窃或火灾。对此的一些选择是云或朋友的房子。


感谢您对TAR / ZIP利弊的良好解释!很有用。
Pisu

9

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

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

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

要提取gzip压缩的tarball,同时保留文件权限,请执行以下操作:

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

更换zj的压缩bzip2的添加vV(例如之前czvfxzpvf他们是存档/提取)来打印文件名。


4
为了可靠性,您不希望压缩。压缩存档的任何损坏都将导致损坏点之后的所有内容丢失。
psusi 2011年

5
@psusi对于bzip2来说不是这样,它压缩约1MB的块。看一看bzip2recover
phihag 2011年

@phihag,整洁,这些年来我一直没有注意到!+1。bzip2优于gzip的一个很好的理由。
psusi 2011年

7

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

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


4

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


1

Gzip压缩包(.tar.gz,.tgz),Linux归档标准。你不会错的。

我一生中从未遇到过损坏甚至麻烦的.tar.gz档案。在FlatmateRooms中,我们使用它在服务器和所有备份上存档数十万张图像。


0

在某些情况下,这对我有用。

tar -cJvf paquete.tar.lzma folder-to-backup/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.