Synchronization and backup programs (简体中文)

From ArchWiki
Jump to navigation Jump to search

这个页面列出并比较了在两个或多个位置之间同步数据的应用程序,以及在此功能之上建立的以备份为目的的制作重要数据的增量副本的应用程序。因为它们的关系,这两组程序共享许多特征所有在同一篇文章里解释描述它们.

备份概览

备份重要数据是必须采取的措施,因为人和机器的处理错误随着时间推移非常可能产生损坏,并且存储数据的物理媒体也不可避免的注定损坏. 为了选择满足每个人的需求的程序,下面的一些问题要考虑:

  • 存储数据的备份媒介, 比如. CD, DVD, 远程服务器, 外部硬盘, 等的种类.
  • 计划的备份频率, 比如. 每天, 每周, 每月, 等等.
  • 希望从备份获取的功能,比如,压缩,加密,处理重命名等.
  • 如果需要的话存储重命名的方式.

数据同步

这些应用做的只是以一种“镜像”的方式在多地点/多机器间保持目录同步。 尽管如此,它们中的大多数仍然运行存储和转换到老版本的修改过的或者删除的文件.

也可查阅:

说明

名字
应用的名字,链接到archwiki文章或者官方网站.
到包的链接.
实现
应用程序基于的编程语言,库或者实用程序.
增量传输
仅仅文件修改过的 部分 会被传输.
加密传输
当通过网络传输时默认加密.
FS元数据
文件的权限和属性是同步的 .
可恢复
同步能继续,如果被打断的话.
处理重命名
移动过/或重命名过的文件会被监测并不会存储或者传输两次. 它通常意味着会计算文件或文件块的校验和.程序如果没有这项功能能通过和 hsyncAUR结合起来来实现, 这个程序 只做 同步命名.
版本控制
旧版本的文件也被备份了 (反向增量备份).
改变传播
指定能传播多少地点.
  • 单向 意味着两地点的单向传播,
  • 双向 意味着两地点的双向传播
  • 多向 意味着多地点的完全同步.
冲突解决方案
这个程序会要么自动要么交互的处理文件冲突, 即是它不静默的丢弃冲突文件. 这项属性不适应于只支持单方向传播的程序.
FS监听
应用程序监听文件系统的变化来触发同步.
CLI
应用程序提供命令行界面.
其它界面
应用有的特殊用户界面, 比如. GUI, TUI, 或者基于网页.
证书
服务器程序和客户端程序的证书.
其它平台
不仅仅支持Linux.
维护
项目还在被维护.
特性
特别是能将应用程序和其它的区分开的特性的说明.

表格

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: 明确列出了支持的协议 / 工具. 丢弃 加密传输 这一列 因为它取决于协议/工具. 简化并给改变传输 列上色 并把它向左移. 拆分未维护到子分区? 查阅 User:Larivact/drafts/Synchronization and backup programs#Synchronization. (Discuss in Talk:Synchronization and backup programs (简体中文)#)

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: 空的地方还需要填写. (Discuss in Talk:Synchronization and backup programs (简体中文)#)
名字 安装包 实现 增量传输 加密传输 FS元数据 可恢复 处理重命名 版本控制 改变传播 冲突解决方案 FS监听 CLI 其它界面 证书 其它平台 维护 特性
FreeFileSync freefilesyncAUR C++ ? SFTP [1] ? ? Yes [2] Yes [3] unidirectional / multidirectional Yes ? No Yes GPL Windows, macOS Yes
git-annex git-annex Haskell, git rsync [4] rsync [5] ? ? ? Yes multidirectional; with git remotes [6] 重命名冲突文件 [7] ? Yes git-annex assistant GPLv3 macOS, Android Yes 用git管理文件
osync.sh osyncAUR Bash, based on rsync rsync rsync ? Yes No Yes bidirectional 保存多版本的文件 [8] 可选的 [9] Yes No BSD Yes
rclone rclone Go No [10] ? ? ? ? ? unidirectional [11] ? ? Yes RcloneBrowser MIT *BSD, Plan9, Solaris, Windows, macOS Yes 针对与云存储同步进行了优化, 表现因远程位置支持的特性而异.
rdiff-backup rdiff-backup Python 2, librsync rsync rsync Yes ? No Yes unidirectional No Yes No GPL Win32 ?
Resilio Sync rslsyncAUR C++ Yes Yes ? Yes ? Yes multidirectional ? ? No Web Proprietary freemium FreeBSD, Windows, macOS, Android, iOS, Windows Phone, Amazon Kindle Fire Yes P2P 同步
Rsync (简体中文) rsync C Yes SSH or native protocol Yes Yes No
  • --link-dest with hard links [12]
  • --backup
unidirectional No Yes Rsync#Front-ends GPLv3 Win32 Yes 在所有Linux发行本上的标准工具.
SparkleShare sparkleshare C#, git Yes AES-256 [13] ? ? Yes Yes ? ? ? No Yes GPLv3 Windows, macOS Yes 能通过SSH和任何Git服务器同步.
Syncany syncanyAUR Java ? ? ? ? ? ? ? ? ? Yes Yes GPLv3 No [14]
Syncthing syncthing Go Yes [15] Yes [16] partial [17] Yes ? Yes [18], previous versions moved to archive folder multidirectional 重命名一个文件 [19] Yes Yes Web, GTK MPL v2 BSD, Windows, macOS, Android, Kindle Paperwhite Yes P2P sync
Synkron synkronAUR C++ ? ? ? ? ? ? multidirectional ? ? No Qt GPLv2 Windows, macOS No
taskd taskd C++, Python Yes Yes ? Yes ? ? multidirectional ? No Yes No MIT Android Yes
Unison (简体中文) unison OCaml Yes Yes partial [20] optional [21] No Yes [22] bidirectional interactive No Yes GTK2 GPL FreeBSD, Windows, macOS, Android Yes [23]

增量备份

那些能 增量备份的程序会记住并考虑上次账户运行期间备份的数据(所谓的 "差异") 并消除重复未更改数据的需要.将数据还原到特定时间点需要定位上次完整备份和所有增量备份到赢应恢复的时刻 . 这种备份方法对经常备份的人很有用.

可查阅:

说明:

  • 名字: 应用名字, 链接到archwiki文章或者官方网站.
  • : 链接到安装包.
  • 实现: 程序基于的编程语言、库或者实用工具.
  • 压缩存储: 用作存储的压缩方法.
  • 加密存储: 加密被用作存储.
  • 增量传输: 只有文件修改过的 部分 会被传输.
  • 加密传输: 当通过网络传输时数据默认加密.
  • 文件系统元数据: 文件系统权限和属性也备份了.
  • 易访问: 备份明确地存储在文件系统中,或者可以挂载.
  • 可恢复: 如果中断备份可以不重启继续.
  • 处理重命名: 移动/重命名的文件会被监测并不会存储或转移两次; 它通常意味着它会计算文件或文件块的校验和.
  • 命令行: 应用程序是命令行驱动的,即它可用来编写脚本.
  • 其它界面: 这个应用有其它特定的用户界面,比如 GUI, TUI, 或者基于网络的接口.
  • 证书: 服务器或客户端程序的证书.
  • 其它平台: 除了Linux之外支持的操作系统.
  • 维护: 这个项目是否还在维护.
  • 特性: 特别是能将应用程序和其它的区分开的特性的说明.

单机器

这些程序针对把数据从它们安装的机器备份, 尽管备份目的可能在外部机器或者是存储媒体.

基于块的增量

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: 你可以补全空的地方. 比如文件元数据 列: 不成熟 是什么意思? 可恢复 列: 只可以暂停 / 有点通过tar 是什么意思? (Discuss in Talk:Synchronization and backup programs (简体中文)#)

如果一个文件被修改, 下次快照这些程序只存储修改过的 部分 . 与 #File-based increments[broken link: invalid section] 的程序相比, 它们在磁盘方面效率更高, 特别是大文件但是只有小修改; 另一方面,存档的快照必须能用创造它们的备份程序打开 , 因为文件必须从二进制差异中重建.

名字 实现 压缩存储 加密存储 增量传输 加密传输 文件元数据 容易访问 可恢复 处理重命名 命令行 其他界面 证书 其它平台 维护 特性
Areca Backup arecaAUR Java Zip, Zip64 AES128, AES256 Yes Yes Yes No 只可以暂停 No Yes Yes GPLv2 Windows Yes
BorgBackup borg Python, C (Cython) lz4, zlib, lzma, zstd AES256 Yes SSH Yes [24] Yes [25] Yes [26] Yes Yes third party BSD *BSD, macOS, Windows (Cygwin / WSL)[27] Yes 基于可变长度块的重复数据删除;支持本地和基于ssh的远程备份目的地.
btar btarAUR[broken link: archived in aur-mirror] C Yes Yes Yes Yes ? No ? ? Yes No GPLv3 Yes 冗余、索引提取、多核压缩、输入和输出的序列化、对部分存档错误的容忍度.
bup bup bup-gitAUR C, Python, git Yes No Yes Yes 不成熟 Yes [28] 在你离开的地方继续 [29] Yes Yes bupsAUR GPLv2 NetBSD, Windows, macOS Yes 和git一样的存储格式.
Duplicati duplicati-latestAUR C# Yes Yes Yes Yes scheduled for 2.0 release No Pausing only No Yes Yes LGPL Windows Yes
Duplicity duplicity librsync gzip gpg Yes Yes ? No Yes No Yes Yes GPL Yes
Kup Backup System kup rsync, bup front-end Yes Yes Yes Yes Immature Yes No Yes bup Qt GPLv2 Yes
obnam obnamAUR Python Yes GnuPG Yes Yes ? Yes checkpoints every 100MB ? Yes No GPLv3 No
restic restic restic-gitAUR Go No [30] AES-256 [31] Yes Yes Yes [32] Yes [33] Yes [34] Yes Yes No [35] BSD OpenBSD, Windows, macOS Yes 支持多种通过本地或通过 rclone的云服务存储.
ZBackup zbackupAUR C++ LZMA, LZO AES Yes Yes ? planned [36] No Kinda through tar Yes No GPLv2 Yes 库由不可变文件组成.

基于文件的增量

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: 你可以填空的地方. (Discuss in Talk:Synchronization and backup programs (简体中文)#)

如果文件被修改, 这些文件会在下次快照存储整个版本的文件. 与 #Chunk-based increments[broken link: invalid section] 应用相比, 它们对存储空间的利用率不够高, 特别是备份大文件但是修改小时; 另一方面, 通常存档的快照没有备份程序安装的时候也能打开.

特殊说明:

  • 硬链接: 是否将为修改的文件存储为之前版本的硬链接.
名字 实现 压缩存储 加密存储 增量传输 加密传输 文件系统元数据 易访问 可恢复 处理重命名 硬链接 命令行 其他界面 证书 其它平台 维护 特性
Back In Time backintimeAUR Python, rsync, diff No No rsync rsync rsync Yes No No Yes [37] Yes Qt GPLv2 Yes
DAR (Disk ARchive) darAUR C++ special archive format Yes Yes Yes ? ? ? ? No [38] Yes darguiAUR GPL FreeBSD, NetBSD, Windows, macOS Yes
Link-Backup link-backupAUR Python 2 No No ? SSH ? ? Yes Yes No [39] Yes No MIT No 把它自己复制到服务器.
rdup rdupAUR C tar.gz gpg, blowfish and others ? ? ? Yes ? No Yes Yes No GPLv3 No 一套命令行工具.
rsnapshot rsnapshot rsync No No Yes Yes ? ? ? ? Yes [40] Yes No GPLv2 Win32 No [41]
sbackup sbackupAUR Python gzip, bzip2 No ? SSH ? No No No No No GTK GPLv3 No
TimeShift timeshiftAUR rsync No No rsync rsync ? ? ? ? Yes No GTK GPLv3 专门为完整系统备份到专用设备而设计的. Yes

面向网络

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: 你可以填写空的地方. 比如加密传输 列: 只能网络传输是什么意思? (Discuss in Talk:Synchronization and backup programs (简体中文)#)

这些程序被设计为旨在集中链接到网络的多台计算机的备份, 通过一种服务器-客户端模型. 通常,它们部署更复杂, 与 #Single machine[broken link: invalid section] 解决方案相比.

特殊说明:

  • 控制方向: 拉取: 服务器登录客户端. 推动: 客户端启动会话.
  • 增量类型: 通过删除重复数据来减少已用空间的策略 (i.e., 除了压缩之外).
    • 基于文件: 如果文件被修改, 整个新版本将存在每个快照中.
      • 硬链接: 未修改的文件是否被存为之前版本的硬链接.
    • 基于块: 只有文件修改过的 部分 被存在每个快照中.
名字 实现 控制方向 压缩存储 加密存储 增量传输 加密传输 文件系统元数据 易访问 可恢复 处理重命名 增量种类 命令行 其它界面 证书 其它平台 维护 特性
BackupPC backuppc Perl Pull Yes No Yes Yes Yes No Yes ? 基于文件, 硬链接 [42] No Web GPLv2 任何平台 (不需要客户端) Yes 相同或不同客户端的备份中相同文件仅存储一次.
Bacula bacula* in AUR C++ Pull Yes Yes ? Yes ? ? Yes ? 基于文件 [43] Yes GUI, Web AGPLv3 Windows, macOS Yes
burp burp-backupAUR librsync Push Yes Yes Yes Yes Yes ? Yes ? 基于块 [44] Yes burp-ui AGPLv3 Windows, macOS Yes
SafeKeep safekeepAUR rdiff-backup Pull No No ? Yes ? ? ? ? 基于块 [45] Yes Yes GPL No LVM 和数据库集成以创建一致的备份. 带宽限制.
Snebu snebuAUR[broken link: archived in aur-mirror] C Push or Pull Yes No ? Yes ? ? ? ? 基于文件 [46] Yes No GPLv3 ? 支持任意保留计划.
Synbak synbak Multitool wrapper ? Yes No Yes Yes Yes ? ? ? ? No Web GPLv3 Yes 统一许多备份方法.
UrBackup urbackup* in AUR C++ Pull No No Yes Internet transfers only Yes Yes Yes Yes 基于文件,硬链接和符号链接[47]/基于块的 CoW-Snapshots[48] Yes (client) GUI, Web AGPLv3+ Windows, macOS Yes 相同或不同客户端的相同文件的备份只存储一次. 在文件系统快照里集成了 LVM, dattobd 和 btrfs .

版本控制系统

虽然 版本控制系统大多数时候用于源代码, 但它们可以跟踪目录里的任何文件.

查阅 List of applications/Utilities#Version control systemsdotfiles.

也可查阅