备份工具比较

这个问题之所以存在,是因为它具有历史意义,但在本站上,它并不被视为一个好的、切题的问题,所以请不要将其作为您可以在这里提出类似问题的证据。虽然鼓励您帮助维护其答案,但请理解“大列表”问题通常不被允许在Ask Ubuntu上,并且将根据帮助中心关闭。
备份非常重要。显然没有最好的备份工具,但对选项进行比较将非常有趣。
  • 图形界面?命令行?
  • 增量备份?
  • 自动备份?
  • 安装方法:标准软件源?PPA?

4我会说备份方案取决于您用于备份的机器用途。工作/学校重要项目/代码的集合与存储大量色情和音乐的计算机有着迥然不同的需求。在我的家庭设置中,我有一个小脚本,可以增量备份我不想丢失的几个文件夹。我的工作笔记本电脑上的所有内容都备份到服务器上,并且从未留下重要任务的东西。 - Toby
这不是一个功能对比,但这份调查可能会有帮助:http://www.webupd8.org/2010/05/best-linux-backup-tool-software.html 也要读一下评论! - Alin Andrei
38个回答

Déjà Dup 安装Déjà Dup

Déjà Dup(从Ubuntu 11.10开始)默认安装。它是一个面向普通桌面用户的GNOME工具,旨在成为“隐藏备份复杂性的简单备份工具”。

它是duplicity的前端,执行增量备份,仅存储自上次备份以来发生的更改。它提供加密和自动备份选项。可以备份到本地文件夹、Amazon S3或任何Nautilus可以连接的服务器。

与Nautilus的集成非常出色,可以恢复从目录中删除的文件,并恢复旧版本的单个文件。

Main Window Screenshot

Restore earlier version of file

请注意,截至2016年2月,该项目似乎几乎完全忽视了bug报告,只进行了一些次要的组织工作,并且最后一次修复bug的日期还停留在2014年。尽管如此,仍然有一些较小的更新版本发布了。

4我不太明白。你不能很容易地恢复特定版本的单个文件。但是,你可以将整个备份内容恢复到特定的备份中。例如,我可以恢复到上周,或者上上周,或者再上一周,等等。 - 8128
它有哪些远程备份选项?ssh、samba...? - Hamish Downer
2它可以连接到nautilus能看到的任何东西。所以如果你可以将它挂载到文件系统中,那是一个选择。另外还可以连接到ftp、ssh、webdav或Windows共享。可惜,我对samba的了解有限。 - 8128
9您可以恢复特定版本的单个文件。它包括一个Nautilus扩展。您只需右键单击文件,然后选择“恢复到以前的版本”。 - andrewsomething
2Deja Dup有命令行界面吗? - brillout
3@brillout.com Deja Dup是基于Duplicity开发的,它提供了一个命令行界面。另一个选择是duply。 - nealmcb
2Deja Dup 不是以 root 用户身份运行的,因此无法备份当前用户无法读取的文件。如果你使用 gksu 来运行它,最后的通知窗口会崩溃,你无法得知备份是否成功。对于单个用户备份而言,它非常出色。 - Chris Good
1Duplicity(和Deja Dup)是否将备份文件保存为普通目录中的普通文件?还是它使用自己特定的数据格式,只能通过该程序本身进行阅读? - Lii
@Lii - 後者我恐怕 - 8128
保留文件至少6个月 - 真是什么鬼? - Martin Pfeffer
1@Lii 大部分是前者。根据文档所述:“duplicity用于存储备份数据的文件是GNU tar格式的tar文件。它们可以由rdiffdir(1)独立生成。对于增量备份,新文件通常保存在tar文件中。但是当文件发生更改时,不会存储完整的文件副本,而是只存储差异,由rdiff(1)生成。如果文件被删除,则在tar中存储一个长度为0的文件。可以通过使用tar,然后根据需要使用cp、rdiff和rm来“手动”恢复duplicity存档。这些duplicity存档的扩展名为difftar。” - bernie

回到过去

我已经使用回到过去有一段时间了,对它非常满意。

你只需要进行以下配置:

  • 快照保存的位置
  • 需要备份的目录
  • 备份应该何时进行(手动、每小时、每天、每周、每月)

然后就可以忘记它。

在Ubuntu 14.04-18.04上安装回到过去:

sudo apt install backintime-gnome

在Ubuntu 20.04及更高版本上安装Back in Time:
sudo apt install backintime-qt

程序的图形用户界面可以通过在Ubuntu中搜索"backintime"来打开。

alt text

该项目截至2019年8月仍在进行中。

2有没有办法将此备份到远程服务器?当您选择目标目录时,所有非本地目录都会被隐藏,而在位置栏中输入是无效的。 - zacharyliu
你可以挂载一个远程共享并在那个上面进行备份。了解更多信息,请看Samba解决方案:https://vollkorn.cryptobitch.de/index.php?/archives/87-My-Backup-Solution-using-BackInTime.html 或SSH解决方案:http://www.oak-tree.us/blog/index.php/2009/07/20/back-in-time2 - gourgi
23使用backintime时有一个“陷阱” - 默认情况下,“点”文件被排除在外。如果您想要包括您的主目录中的点文件,请使用backintime的设置->排除并删除.*。 - user8290
1要备份到远程服务器,您可以使用~/.gvfs文件夹,这是nautilus挂载远程服务器的位置。但是Déjà-Dup比back-in-time备份更快速,而back-in-time更适合单独查看文件。 - desgua
1我喜欢定义独立配置文件的功能。这有助于我为驱动器的不同分区定义不同的配置文件,并仅更新我需要的分区的备份。此外,第一次备份操作将需要更少的时间。 - Chethan S.
1回到过去是否将备份文件保存为常规目录中的普通文件?还是它使用自己特殊的数据格式,只能通过该程序才能读取? - Lii
3@Lii BackInTime 使用普通文件复制,在快照之间进行硬链接。您可以使用任何喜欢的工具浏览它们。 - Germar
你在使用 GNOME 2 吗?那真的可能吗? - Gowtham

rsnapshot与rdiff-backup的比较

我经常参考这个 rsnapshot和rdiff-backup的比较

相似之处:

  • 两者都使用类似rsync的算法来传输数据(rsnapshot实际上使用rsync;rdiff-backup使用python的librsync库)
  • 两者都可以通过ssh进行使用(尽管在没有一些额外脚本的情况下,rsnapshot无法通过ssh进行推送)
  • 两者都使用源文件的简单副本作为当前备份

磁盘使用方面的差异:

  • rsnapshot使用实际文件和硬链接来节省空间。对于小文件,存储大小相似。
  • rdiff-backup将先前版本存储为与当前版本类似的压缩增量,类似于版本控制系统。对于经常更改的大文件,如日志文件、数据库等,rdiff-backup在给定数量的版本下所需的空间显著较少。

速度方面的差异:

  • rdiff-backup比rsnapshot慢,因为它需要计算增量文件。不过,有一些方法可以加快速度,比如使用--no-fsync--no-compression选项。

元数据存储的差异:

  • rdiff-backup将文件的元数据(如所有权、权限和日期)分开存储。

文件透明度的差异:

  • 对于rsnapshot,备份的所有版本都可以作为普通文件访问。
  • 对于rdiff-backup,只能访问当前备份作为普通文件。以前的版本以rdiff增量的形式存储。

备份级别的差异:

  • rsnapshot支持多个备份级别,如每月、每周和每日。
  • rdiff-backup只能删除早于给定日期的快照;它无法删除两个日期之间的快照。

支持社区的差异:

  • rdiff-backup最近经历了很多开发和错误修复活动。从2019年12月到2020年春季,rdiff-backup被重新改进为支持Python 3的2.0版本。

支持的文件系统:

  • rdiff-backup支持所有类Unix的文件系统。FAT32、NTFS和HFS+也都支持。截至今天(2020年7月),exFAT仍然存在问题。

你们两个都支持数据去重吗? - intuited
听起来 rsnapshot 总体上更好。 - mlissner
2librsync 不是一个 Python 库,而是一个 C 库。它基于 rsync 算法,并被 rdiff-backup 直接从 Python 中使用,因此不需要调用外部工具并解析输出,就像 rsnapshot 一样。 - Anthon
rdiff-backup的一个巨大优点是可以轻松访问当前备份中的文件,因此您可以将rdiff-backup用作文件传输工具。如果您有两台计算机,可以将桌面目录备份到一个(足够大的)USB存储设备上的两个文件夹,分别命名为“桌面A”和“桌面B”。要在另一台计算机上编辑文件,只需从备份中复制文件,并将其放入活动的桌面文件夹中即可。 - user258532

rsync 安装 rsync

如果您熟悉命令行工具,可以使用rsync自动创建(增量)备份。它可以将您的目录镜像到其他机器上。网上有很多关于如何做到这一点的脚本。在您的crontab中设置它作为定期任务。还有一个名为Grsync的图形界面前端,可以使手动备份更容易。

一个非常有用的例子是:

rsync -vahP --delete --backup-dir ../$(date --iso-8601=minutes) <source directory> <destination directory>

在-vahP中,-a标志很重要,因为它保留文件权限并递归进入子目录。--backup-dir将更改和删除的文件存储在指定的备份目录中,该目录方便地以当前日期和时间命名。
下面的想法是使用带有后缀的方式存储更改/删除的文件,后缀包含当前的时间/日期:
rsync -vahP --delete --backup-dir ../backup --suffix .$(date --iso-8601=minutes) <source directory> <destination directory>

尽管 rsync 非常快速和多功能,但只有最后一个备份能够以明显的方式轻松恢复。
保留已删除文件的另一种方法是使用硬链接。
参见:

6rsync 是一个有用的工具,但它并不适合备份。它无法保留历史版本。 - Erigami
我已经将此更改为讨论 rsnapshot,这是我认为作者所指的内容。 - 8128
@fluteflute:不,我并不是指rsnapshot。所以你的修改完全改变了我帖子的意思。我用一个链接替换了rsnapshot,该链接解释了一些关于使用rsync作为备份的内容。 - Roalt
我真诚地道歉。rsync相对于rsnapshot有哪些优势呢?(这是一个认真的问题,希望不会给人一种攻击性的印象) - 8128
1使用"cp --archive --link --verbose /MAKE_SNAPSHOT{,_date '+%Y-%m-%d'}/"和"rsync -avz --link-dest=../OLD_BACKUP_DIR SOURCE_DIR NEW_BACKUP_DIR"只是非常简单的。rsnapshot增加了一些便利性,但也许你并不需要它。这只是个人偏好。 - webwurst
3有一个名为Grsync的rsync图形界面前端(http://www.opbyte.it/grsync/),它使手动备份变得更加简单。我用它来将数据备份到我的便携式硬盘上。 - Dmitry
LuckyBackup 是基于 rsync 的。 - Nikos Alexandris

复制 安装复制

复制是一个功能丰富的命令行备份工具。

复制通过生成加密的tar格式卷并将其上传到远程或本地来备份目录。它使用librsync记录文件的增量更改;gzip用于压缩它们;gpg用于加密它们。

复制的命令行可能让人望而生畏,但有许多复制的前端可供选择,从命令行(duply)到GNOME(deja-dup),再到KDE(time-drive)。


1还有一些图形用户界面的前端可以与duplicity配合使用,比如Time Drive - Ryan C. Thompson
Time-Drive在当前版本的Ubuntu(precise)上不再提供ppa,而且只有在捐赠后才能获得源代码。这使我无法进行评估,现在我使用命令行中的'duplicity'作为root来进行备份(因为Deja-Dup无法很好地处理root备份),并且仍然可以使用deja-dup的漂亮的恢复图形界面选项(从Nautilus中)。 - Chris Good
根据该网站的说明,它仍处于测试阶段。不确定我是否会推荐任何人使用测试版软件来备份或恢复关键数据,即使是家庭照片。 - bloudraak

Dropbox

一个适用于Windows、Mac和Linux的跨平台(专有)云同步工具。免费提供2GB的在线存储空间,同时也有付费选项。它被宣传为一种“在线存储、同步和共享文件”的方式,但也可以用于备份目的。

请注意,即使是付费账户,修订历史也仅限一年,而免费账户则仅限一个月

还要注意,由于Dropbox并非备份工具,因此恢复大量文件可能非常耗时。

Dropbox in use on Ubuntu


36同步工具不应与备份工具混淆。同步工具可以帮助提高备份效率,例如rsync可以节省带宽。但它并不是备份的解决方案,除非它具有强大的修订历史功能。为什么这样说呢?想象一下,如果你的文件被病毒感染并修改了,那么修改后的文件将被同步,你就会丢失它们。Dropbox有一些修订历史功能,因此它可以作为备份的替代品。但请记住,不能保证在需要时能恢复文件! - Huygens
7Spideroak提供免费账户的无限修订历史记录。 - intuited
3请注意,如果您需要恢复大量文件,Dropbox的表现非常糟糕,因为Dropbox只允许您每次只恢复一个文件,而每个文件的恢复都需要加载数个页面。 - Scott Severance
请注意,Dropbox已经停止支持加密的Linux文件系统,尽管存在一些替代方案,主要是LUKS和整个磁盘加密,或者可以考虑使用CryptomatorCryFS,或者转向Dropbox的替代方案 - Pablo Bianchi

luckyBackup 安装 LuckyBackup

之前没有提到过,所以我要说一下 "LuckyBackup" 是一个出色的 rsync 图形化前端,使得简单或复杂的备份和克隆变得非常简单。

请注意,该工具已不再开发。

所有重要的截图可以在他们的网站上找到,以下是其中一张截图:

luckyBackup

注意:截至2021年01月,luckyBackup的最新版本是2018年11月发布的。

对我来说,这是最灵活可配置的选项,还包括备份到远程FAT32分区的选项(适用于像我这样拥有老旧和质量较差的NAS设备的人)。太棒了! - desgua

BackupPC

如果你想备份整个家庭网络,我建议在地下室/壁橱/洗衣房中运行BackupPC的一台始终开启的服务器。从备份服务器上,它可以通过ssh、rsync、SMB和其他方法连接到任何其他计算机(不仅限于Linux计算机),并将它们全部备份到服务器上。它通过硬链接合并相同文件来实现增量存储,即使这些相同文件是从不同的计算机备份而来。

BackupPC运行一个Web界面,你可以用它来自定义设置,包括添加要备份的新计算机,启动即时备份,最重要的是,恢复单个文件或整个文件夹。如果BackupPC服务器对你要恢复的计算机具有写权限,它可以直接将文件恢复到原来的位置,这真的很方便。

BackupPC Web Interface - Server Status Page


1BackupPC是一个非常好的解决方案,适用于家庭、家庭办公室和小型企业。它也非常适合服务器以及混合的Windows/Linux环境。 - Amala
1我对在Precise 12.04中使用backuppc遇到的问题感到惊讶。文档是针对手动配置而非漂亮的Web界面进行的。它很难配置。他们没有方便的上游错误跟踪器,只有一个邮件列表,但我遇到了许多未解决的错误,包括在BackupPC在Ubuntu 12.04上的问题| tolaris.com和https://bugs.launchpad.net/ubuntu/+source/backuppc/+bug/497732/comments/14中提到的那些。 - nealmcb
请注意,它安装了Apache来运行网站,并打开端口80以供外部访问。更糟糕的是,它需要一个密码来进行Web配置,但默认情况下会明文发送密码到网络中。请参阅SourceForge.net:Configuring BackupPC for secure backups and access controls - backuppc上的其他安全问题。 - nealmcb

bup

一个基于git packfile格式的高效文件备份系统。能够快速增量备份虚拟机镜像。

亮点:

  • 它使用滚动校验算法(类似于rsync)将大文件分割成块。最有用的结果是,即使虚拟机(VM)磁盘映像、数据库和XML文件通常都在一个巨大的文件中,也可以进行增量备份,并且不会使用大量磁盘空间来存储多个版本。
  • 数据在增量备份之间自动共享,无需知道哪个备份是基于其他备份的 - 即使备份是从两台不相互了解的计算机上创建的。您只需告诉bup要备份的内容,它就会保存所需的最小数据量。
  • Bup可以使用"par2"冗余来恢复损坏的备份,即使您的磁盘有未检测到的坏扇区。
你可以将你的bup存储库挂载为一个FUSE文件系统,并通过这种方式访问内容,甚至可以通过Samba导出它。
有一个基于KDE的前端(图形界面)可用于bup,即Kup备份系统

确实有一些不错的功能。但请注意,到目前为止它不能保存文件元数据(所有权、权限、日期),并且无法删除旧备份,因此最终会用完空间。参见评论:Git-based backup with bup -LWN.net 和 README 文档:apenwarr/bup - GitHub - nealmcb
现在似乎已经支持元数据,参见 https://github.com/apenwarr/bup:'bup save' 和 'bup restore' 现在具有不成熟的元数据支持。好的一面是,它们实际上现在已经有了支持,但这是新功能,并且测试远远不如 tar/rsync/等工具。如果您愿意帮助测试,请随时参与(请参阅 t/compare-trees 以获取一种比较方法)。 - student
Bup在Ubuntu 20.04(以及其他最近的基于Debian的发行版)上不可用,显然是因为它使用了不再受支持的Python 2。 - Matthew

CrashPlan

CrashPlan是一家提供商业备份服务的公司,没有为个人用户提供计划

特点

  • 每月10美元/设备费用
  • 三重目标数据存储和保护
  • 静默且持续进行备份
  • 大容量的保留和版本控制
  • 删除文件保护

我曾考虑过很多选项和配置(使用rdiff-backup、duplicity、backup-ninja、amazon s3、远程服务器)。最终选择了简单性。

CrashPlan是跨平台的,但不是开源的。

值得注意的是,通过(付费的)CrashPlan Central“家庭”计划,您可以备份您拥有的所有计算机。


CrashPlan可能是个不错的选择,但备份速度实在太慢了。 - Goddard
请注意,CrashPlan将停止向非企业客户提供服务:https://www.crashplan.com/en-us/consumer/nextsteps/ - Ours