Difference between revisions of "Synchronization and backup programs"

From ArchWiki
Jump to: navigation, search
m (Incremental backups: link Wikipedia article)
m (Burp works on macOS)
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[Category:Data compression and archiving]]
 
[[Category:Data compression and archiving]]
 
[[Category:System recovery]]
 
[[Category:System recovery]]
 +
[[Category:Software comparisons]]
 
[[de:Backups]]
 
[[de:Backups]]
 
[[ja:バックアッププログラム]]
 
[[ja:バックアッププログラム]]
Line 33: Line 34:
 
* [[Wikipedia:Comparison of file synchronization software]]
 
* [[Wikipedia:Comparison of file synchronization software]]
  
'''Legend:'''
+
=== Legend ===
 +
 
 +
;Name: The application name, linking to the ArchWiki article or the official website.
 +
;Package: A link to the package.
 +
;Implementation: The programming language, library, or utility that the application is based on.
 +
;Delta transfer: Only the modified ''parts'' of files are transferred.
 +
;Encrypted transfer: Data is encrypted by default when transferred over the network.
 +
;FS metadata: File system permissions and attributes are synchronized.
 +
;Resumable: The synchronization can be resumed if interrupted.
 +
;Handles renames: Moved/renamed files are detected and not stored or transferred twice. It typically means that a checksum of files or its chunks is computed. Applications missing this functionality can be supplemented by combining with {{AUR|hsync}}, which ''only'' synchronizes renames.
 +
;Version control: The old version of files are backed up (''reverse incremental backup'').
 +
;Change propagation: Specifies in how many directions changes can be propagated.
 +
:* ''unidirectional'' means one-way synchronization of two locations,
 +
:* ''bidirectional'' means two-way synchronization of two locations and
 +
:* ''multidirectional'' means full synchronization of more than two locations.
 +
;Conflict resolution: The application handles file conflicts, either automatically or interactively, i.e. it does not silently discard conflicting files. This attribute does not apply to applications that only propagate changes in one direction.
 +
;FS monitoring: The application listens to file system events to trigger the synchronization.
 +
;CLI: The application provides a command-line interface.
 +
;Other interfaces: The application has the specified user interfaces, e.g. GUI, TUI, or web-based.
 +
;License: The license of the server and client applications.
 +
;Other platforms: Supported operating systems other than Linux.
 +
;Maintained: The project is maintained.
 +
;Specificity: Brief notes about special features that notably set the application apart from the others.
 +
 
 +
=== Table ===
  
* '''Name''': the application name, linking to the ArchWiki article or the official website.
+
{{Style|Explicitly list supported protocols / tools. Drop ''Encrypted transfer'' column because it depends on the protocol / tool. Simplify and color ''Change propagation'' column and move it leftwards. Split unmaintained into subsection? See also [[User:Larivact/drafts/Synchronization and backup programs#Synchronization]].}}
* '''Package''': a link to the package.
+
{{Expansion|Fill in the blanks.}}
* '''Implementation''': the programming language, library, or utility that the application is based on.
 
* '''Delta transfer''': only the modified ''parts'' of files are transferred.
 
* '''Encrypted transfer''': data is encrypted by default when transferred over the network.
 
* '''FS metadata''': file system permissions and attributes are synchronized.
 
* '''Resumable''': the synchronization can be resumed if interrupted.
 
* '''Handles renames''': moved/renamed files are detected and not stored or transferred twice. It typically means that a checksum of files or its chunks is computed. Applications missing this functionality can be supplemented by combining with {{AUR|hsync}}, which ''only'' synchronizes renames.
 
* '''Version control''': the old version of files are backed up ('''reverse incremental backup''').
 
* '''Change propagation''': specifies in how many directions changes can be propagated.
 
** ''unidirectional'' means one-way synchronization of two locations,
 
** ''bidirectional'' means two-way synchronization of two locations and
 
** ''multidirectional'' means full synchronization of more than two locations.
 
* '''Conflict resolution''': the application handles file conflicts, either automatically or interactively, i.e. it does not silently discard conflicting files. This attribute does not apply to applications that only propagate changes in one direction.
 
* '''FS monitoring''': the application listens to file system events to trigger the synchronization.
 
* '''CLI''': the application is command-line driven, i.e. it is scriptable.
 
* '''Other interfaces''': the application has the specified user interfaces, e.g. GUI, TUI, or web-based.
 
* '''License''': the license of the server and client applications.
 
* '''Other platforms''': supported operating systems other than Linux.
 
* '''Specificity''': brief notes about special features that notably set the application apart from the others.
 
  
 
{| class="wikitable sortable" style="text-align: center"
 
{| class="wikitable sortable" style="text-align: center"
Line 90: Line 97:
 
| {{No}}
 
| {{No}}
 
| {{Yes}}
 
| {{Yes}}
| GPL
+
| {{B|GPL}}
 
| Windows, macOS
 
| Windows, macOS
 
| {{Yes}}
 
| {{Yes}}
Line 109: Line 116:
 
| {{Yes}}
 
| {{Yes}}
 
| {{G|[http://git-annex.branchable.com/assistant/ git-annex assistant]}}
 
| {{G|[http://git-annex.branchable.com/assistant/ git-annex assistant]}}
| GPLv3
+
| {{B|GPLv3}}
 
| macOS, Android
 
| macOS, Android
 
| {{Yes}}
 
| {{Yes}}
Line 128: Line 135:
 
| {{Yes}}
 
| {{Yes}}
 
| {{No}}
 
| {{No}}
| BSD
+
| {{B|BSD}}
 
|  
 
|  
 
| {{Yes}}
 
| {{Yes}}
Line 147: Line 154:
 
| {{Yes}}
 
| {{Yes}}
 
| {{G|[https://github.com/mmozeiko/RcloneBrowser RcloneBrowser]}}
 
| {{G|[https://github.com/mmozeiko/RcloneBrowser RcloneBrowser]}}
| MIT
+
| {{B|MIT}}
 
| *BSD, Plan9, Solaris, Windows, macOS
 
| *BSD, Plan9, Solaris, Windows, macOS
 
| {{Yes}}
 
| {{Yes}}
Line 165: Line 172:
 
| {{Yes}}
 
| {{Yes}}
 
| {{No}}
 
| {{No}}
| GPL
+
| {{B|GPL}}
 
| Win32
 
| Win32
 
| ?
 
| ?
Line 184: Line 191:
 
| {{No}}
 
| {{No}}
 
| {{G|Web}}
 
| {{G|Web}}
| Proprietary freemium
+
| {{V|Proprietary freemium}}
 
| FreeBSD, Windows, macOS, Android, iOS, Windows Phone, Amazon Kindle Fire
 
| FreeBSD, Windows, macOS, Android, iOS, Windows Phone, Amazon Kindle Fire
 
| {{Yes}}
 
| {{Yes}}
Line 205: Line 212:
 
| {{Yes}}
 
| {{Yes}}
 
| {{G|[[Rsync#Front-ends]]}}
 
| {{G|[[Rsync#Front-ends]]}}
| GPLv3
+
| {{B|GPLv3}}
 
| Win32
 
| Win32
 
| {{Yes}}
 
| {{Yes}}
Line 224: Line 231:
 
| {{No}}
 
| {{No}}
 
| {{Yes}}
 
| {{Yes}}
| GPLv3
+
| {{B|GPLv3}}
 
| Windows, macOS
 
| Windows, macOS
 
| {{Yes}}
 
| {{Yes}}
Line 243: Line 250:
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
| GPLv3
+
| {{B|GPLv3}}
 
|
 
|
 
| {{No}} [https://github.com/syncany/syncany/graphs/contributors]
 
| {{No}} [https://github.com/syncany/syncany/graphs/contributors]
Line 262: Line 269:
 
| {{Yes}}
 
| {{Yes}}
 
| {{G|Web, GTK}}
 
| {{G|Web, GTK}}
| MPL v2
+
| {{B|MPL v2}}
 
| BSD, Windows, macOS, Android, Kindle Paperwhite
 
| BSD, Windows, macOS, Android, Kindle Paperwhite
 
| {{Yes}}
 
| {{Yes}}
Line 281: Line 288:
 
| {{No}}
 
| {{No}}
 
| {{G|Qt}}
 
| {{G|Qt}}
| GPLv2
+
| {{B|GPLv2}}
 
| Windows, macOS
 
| Windows, macOS
 
| {{R|[https://sourceforge.net/projects/synkron/ No]}}
 
| {{R|[https://sourceforge.net/projects/synkron/ No]}}
Line 300: Line 307:
 
| {{Yes}}
 
| {{Yes}}
 
| {{No}}
 
| {{No}}
| MIT
+
| {{B|MIT}}
 
| Android
 
| Android
 
| {{Yes}}
 
| {{Yes}}
Line 319: Line 326:
 
| {{Yes}}
 
| {{Yes}}
 
| {{G|GTK2}}
 
| {{G|GTK2}}
| GPL
+
| {{B|GPL}}
 
| FreeBSD, Windows, macOS, Android
 
| FreeBSD, Windows, macOS, Android
 
| {{G|Yes [http://www.cis.upenn.edu/~bcpierce/unison/status.html]}}
 
| {{G|Yes [http://www.cis.upenn.edu/~bcpierce/unison/status.html]}}
Line 337: Line 344:
 
'''Legend:'''
 
'''Legend:'''
  
* '''Name''': the application name, linking to the official website.
+
* '''Name''': the application name, linking to the ArchWiki article or the official website.
* '''Installation''': a link to the main ArchWiki article, if existing, or directly to the package pages.
+
* '''Package''': a link to the package.
 
* '''Implementation''': the programming language, library, or utility that the application is based on.
 
* '''Implementation''': the programming language, library, or utility that the application is based on.
 
* '''Compressed storage''': compression is used for storage.
 
* '''Compressed storage''': compression is used for storage.
Line 352: Line 359:
 
* '''Licence''': the licence of the server and client applications.
 
* '''Licence''': the licence of the server and client applications.
 
* '''Other platforms''': supported operating systems other than Linux.
 
* '''Other platforms''': supported operating systems other than Linux.
 +
* '''Maintained''': whether the project is maintained.
 
* '''Specificity''': brief notes about special features that notably set the application apart from the others.
 
* '''Specificity''': brief notes about special features that notably set the application apart from the others.
  
Line 359: Line 367:
  
 
==== Chunk-based increments ====
 
==== Chunk-based increments ====
 +
 +
{{Expansion|Fill in the blanks. ''FS metadata'' column: What does ''Immature'' mean? ''Resumable'' column: What does ''Pausing only'' / ''Kinda through tar'' mean?}}
  
 
If a file is modified, these applications store only its changed ''parts'' at the next snapshot. Compared to [[#File-based increments]] applications, these are more space-efficient, especially when large files receive small modifications; on the other hand, the archived snapshots have to be opened with the backup application that created them, since the files have to be reconstructed from the stored binary diffs.
 
If a file is modified, these applications store only its changed ''parts'' at the next snapshot. Compared to [[#File-based increments]] applications, these are more space-efficient, especially when large files receive small modifications; on the other hand, the archived snapshots have to be opened with the backup application that created them, since the files have to be reconstructed from the stored binary diffs.
Line 364: Line 374:
 
{| class="wikitable sortable" style="text-align:center"
 
{| class="wikitable sortable" style="text-align:center"
 
! Name
 
! Name
! Installation
+
! Package
 
! Implementation
 
! Implementation
 
! Compressed storage
 
! Compressed storage
Line 447: Line 457:
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
| {{G|third party}}
+
| {{G|{{AUR|bups}}}}
 
| GPLv2
 
| GPLv2
 
| NetBSD, Windows, macOS
 
| NetBSD, Windows, macOS
 
| {{Yes}}
 
| {{Yes}}
 
| {{L|Same storage format as git.}}
 
| {{L|Same storage format as git.}}
|-
 
! [https://github.com/emersion/bups bups]
 
| {{AUR|bups}}
 
| bup front-end
 
| {{Yes}}
 
| {{No}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{G|Immature}}
 
| {{Yes}}
 
| {{G|pick up where you left off [https://github.com/bup/bup/blob/master/README.md#reasons-bup-is-awesome]}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{G|GTK 3}}
 
| MIT
 
|
 
| {{Yes}}
 
|
 
|-
 
! [https://launchpad.net/deja-dup Déjà Dup]
 
| [[Déjà Dup]]
 
| duplicity front-end
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| ?
 
| {{No}}
 
| {{Yes}}
 
| {{No}}
 
| {{Yes}}
 
| {{G|GTK+}}
 
| GPLv3
 
|
 
| {{Yes}}
 
| {{L|Integrated into [[GNOME Files]].}}
 
 
|-
 
|-
 
! [http://www.duplicati.com/ Duplicati]
 
! [http://www.duplicati.com/ Duplicati]
Line 507: Line 481:
 
|
 
|
 
|-
 
|-
! [http://www.nongnu.org/duplicity/ Duplicity]
+
! [[Duplicity]]
| [[Duplicity]]
+
| {{Pkg|duplicity}}
 
| librsync
 
| librsync
 
| {{G|gzip}}
 
| {{G|gzip}}
Line 519: Line 493:
 
| {{No}}
 
| {{No}}
 
| {{Yes}}
 
| {{Yes}}
| {{G|Déjà Dup}}
+
| {{G|[[Duplicity#Front-ends|Yes]]}}
 
| GPL
 
| GPL
|
 
| {{Yes}}
 
|
 
|-
 
! [http://www.duply.net/ Duply]
 
| [[Duply]]
 
| duplicity front-end
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| ?
 
| {{No}}
 
| {{Yes}}
 
| {{No}}
 
| {{Yes}}
 
| {{No}}
 
| GPLv2
 
 
|  
 
|  
 
| {{Yes}}
 
| {{Yes}}
Line 576: Line 532:
 
| GPLv3
 
| GPLv3
 
|  
 
|  
| {{No}}
+
| {{R|[https://blog.liw.fi/posts/2017/08/13/retiring_obnam/ No]}}
 
|  
 
|  
 
|-
 
|-
Line 617: Line 573:
  
 
==== File-based increments ====
 
==== File-based increments ====
 +
 +
{{Expansion|Fill in the blanks.}}
  
 
If a file is modified, these applications store its new version entirely at the next snapshot. Compared to [[#Chunk-based increments]] applications, these are less space-efficient, especially when large files receive small modifications; on the other hand, often the archived snapshots can be opened without the need to have the backup application installed.
 
If a file is modified, these applications store its new version entirely at the next snapshot. Compared to [[#Chunk-based increments]] applications, these are less space-efficient, especially when large files receive small modifications; on the other hand, often the archived snapshots can be opened without the need to have the backup application installed.
Line 626: Line 584:
 
{| class="wikitable sortable" style="text-align:center"
 
{| class="wikitable sortable" style="text-align:center"
 
! Name
 
! Name
! Installation
+
! Package
 
! Implementation
 
! Implementation
 
! Compressed storage
 
! Compressed storage
Line 644: Line 602:
 
! Specificity
 
! Specificity
 
|-
 
|-
! [https://github.com/bit-team/backintime Back In Time]
+
! [[Back In Time]]
| [[Back In Time]]
+
| {{AUR|backintime}}
 
| Python, rsync, diff
 
| Python, rsync, diff
 
| {{No}}
 
| {{No}}
Line 676: Line 634:
 
| {{R|No [http://dar.linux.free.fr/doc/Features.html]}}
 
| {{R|No [http://dar.linux.free.fr/doc/Features.html]}}
 
| {{Yes}}
 
| {{Yes}}
| {{G|DarGUI}}
+
| {{G|{{AUR|dargui}}}}
 
| GPL
 
| GPL
 
| FreeBSD, NetBSD, Windows, macOS
 
| FreeBSD, NetBSD, Windows, macOS
 
| {{Yes}}
 
| {{Yes}}
 
|
 
|
|-
 
! [http://dargui.sourceforge.net/ DarGUI]
 
| {{AUR|dargui}}
 
| DAR front-end
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| ?
 
| ?
 
| ?
 
| ?
 
| {{R|No [http://dar.linux.free.fr/doc/Features.html]}}
 
| {{No}}
 
| {{G|GTK}}
 
| GPL
 
| Windows
 
| ?
 
|
 
|-
 
! [http://miek.nl/projects/hdup2/ hdup]{{Dead link|2016|07|11}}
 
| {{Aur|hdup}}
 
| C
 
| {{G|bzip, gzip, lzop}}
 
| {{G|gpg}}
 
| ?
 
| {{G|SSH}}
 
| ?
 
| {{No}}
 
| {{No}}
 
| {{No}}
 
| {{No}}
 
| {{Yes}}
 
| {{No}}
 
| GPLv2
 
|
 
| {{No}}
 
| {{L|Multiple backup targets.}}
 
 
|-
 
|-
 
! [http://www.scottlu.com/Content/Link-Backup.html Link-Backup]
 
! [http://www.scottlu.com/Content/Link-Backup.html Link-Backup]
 
| {{AUR|link-backup}}
 
| {{AUR|link-backup}}
| Python
+
| Python 2
 
| {{No}}
 
| {{No}}
 
| {{No}}
 
| {{No}}
Line 758: Line 678:
 
| {{L|Set of command-line tools.}}
 
| {{L|Set of command-line tools.}}
 
|-
 
|-
! [http://www.rsnapshot.org/ rsnapshot]
+
! [[rsnapshot]]
| [[rsnapshot]]
+
| {{Pkg|rsnapshot}}
 
| rsync
 
| rsync
 
| {{No}}
 
| {{No}}
Line 817: Line 737:
  
 
=== Network oriented ===
 
=== Network oriented ===
 +
 +
{{Expansion|Fill in the blanks. ''Encrypted transfer'' column: What does ''Internet transfers only'' mean?}}
  
 
These applications have been designed to centralize the backup of several machines connected to a network, through a server-client model. In general they are more complicated to deploy, compared to [[#Single machine]] solutions.
 
These applications have been designed to centralize the backup of several machines connected to a network, through a server-client model. In general they are more complicated to deploy, compared to [[#Single machine]] solutions.
Line 830: Line 752:
 
{| class="wikitable sortable" style="text-align:center"
 
{| class="wikitable sortable" style="text-align:center"
 
! Name
 
! Name
! Installation
+
! Package
 
! Implementation
 
! Implementation
 
! Control direction
 
! Control direction
Line 849: Line 771:
 
! Specificity
 
! Specificity
 
|-
 
|-
! [http://backuppc.sourceforge.net/index.html BackupPC]
+
! [[BackupPC]]
| [[BackupPC]]
+
| {{Pkg|backuppc}}
 
| Perl
 
| Perl
 
| Pull
 
| Pull
Line 893: Line 815:
 
| librsync
 
| librsync
 
| Push
 
| Push
 +
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
Line 898: Line 821:
 
| {{Yes}}
 
| {{Yes}}
 
| ?
 
| ?
| ?
+
| {{Yes}}
| ?
 
 
| ?
 
| ?
 
| chunk-based [http://burp.grke.org/why.html]
 
| chunk-based [http://burp.grke.org/why.html]
Line 905: Line 827:
 
| {{G|[https://git.ziirish.me/ziirish/burp-ui burp-ui]}}
 
| {{G|[https://git.ziirish.me/ziirish/burp-ui burp-ui]}}
 
| AGPLv3
 
| AGPLv3
| Windows
+
| Windows, macOS
 
| {{Yes}}
 
| {{Yes}}
 
|
 
|
Line 998: Line 920:
 
== See also ==
 
== See also ==
  
 +
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]
 
* [https://github.com/restic/others Exhaustive list of backup solutions for Linux]
 
* [https://github.com/restic/others Exhaustive list of backup solutions for Linux]
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]
 
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]
 
 
* [http://www.si-journal.org/index.php/JSI/article/view/205 Performance comparison of five remote incremental backup tools: Rsync, Rdiff-backup, Duplicity, Areca and Link-Backup]
 
* [http://www.si-journal.org/index.php/JSI/article/view/205 Performance comparison of five remote incremental backup tools: Rsync, Rdiff-backup, Duplicity, Areca and Link-Backup]
* [http://blog.pointsoftware.ch/index.php/howto-local-and-remote-snapshot-backup-using-rsync-with-hard-links/ rsync-snapshot.sh] — Local and remote snapshot backup using rsync with hard links
+
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]{{Dead link|2018|09|14}}
 +
* [http://blog.pointsoftware.ch/index.php/howto-local-and-remote-snapshot-backup-using-rsync-with-hard-links/ rsync-snapshot.sh]{{Dead link|2018|09|14}} — Local and remote snapshot backup using rsync with hard links

Latest revision as of 20:54, 14 October 2018

This page lists and compares applications that synchronize data between two or more locations, and those that build on top of such functionality to make incremental copies of important data for backup purposes. Because of their relationship, the two groups share several traits that justify describing them in the same article.

Backup overview

Having backups of important data is a necessary measure to take, since human and machine processing errors are very likely to generate corruption as time passes, and also the physical media where the data is stored is inevitably destined to fail. In order to choose the best program for one's own needs, the following aspects should be considered:

  • The type of backup medium that is going to store the data, e.g. CD, DVD, remote server, external hard drive, etc.
  • The planned frequency of backups, e.g. daily, weekly, monthly, etc.
  • The features expected from the backup solution, e.g. compression, encryption, handles renames, etc.
  • The planned method to restore backups if needed.

Data synchronization

These applications simply keep directories synchronized between multiple locations/machines, in a "mirror" fashion. Nonetheless, most of them still allow storing and reverting to old revisions of modified or deleted files.

See also:

Legend

Name
The application name, linking to the ArchWiki article or the official website.
Package
A link to the package.
Implementation
The programming language, library, or utility that the application is based on.
Delta transfer
Only the modified parts of files are transferred.
Encrypted transfer
Data is encrypted by default when transferred over the network.
FS metadata
File system permissions and attributes are synchronized.
Resumable
The synchronization can be resumed if interrupted.
Handles renames
Moved/renamed files are detected and not stored or transferred twice. It typically means that a checksum of files or its chunks is computed. Applications missing this functionality can be supplemented by combining with hsyncAUR, which only synchronizes renames.
Version control
The old version of files are backed up (reverse incremental backup).
Change propagation
Specifies in how many directions changes can be propagated.
  • unidirectional means one-way synchronization of two locations,
  • bidirectional means two-way synchronization of two locations and
  • multidirectional means full synchronization of more than two locations.
Conflict resolution
The application handles file conflicts, either automatically or interactively, i.e. it does not silently discard conflicting files. This attribute does not apply to applications that only propagate changes in one direction.
FS monitoring
The application listens to file system events to trigger the synchronization.
CLI
The application provides a command-line interface.
Other interfaces
The application has the specified user interfaces, e.g. GUI, TUI, or web-based.
License
The license of the server and client applications.
Other platforms
Supported operating systems other than Linux.
Maintained
The project is maintained.
Specificity
Brief notes about special features that notably set the application apart from the others.

Table

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

Reason: Explicitly list supported protocols / tools. Drop Encrypted transfer column because it depends on the protocol / tool. Simplify and color Change propagation column and move it leftwards. Split unmaintained into subsection? See also 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: Fill in the blanks. (Discuss in Talk:Synchronization and backup programs#)
Name Package Implementation Delta transfer Encrypted transfer FS metadata Resumable Handles renames Version control Change propagation Conflict resolution FS monitoring CLI Other interfaces License Other platforms Maintained Specificity
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] renames conflicting files [7] ? Yes git-annex assistant GPLv3 macOS, Android Yes Manage files with git
osync.sh osyncAUR Bash, based on rsync rsync rsync ? Yes No Yes bidirectional keeps multiple versions of a file [8] optional [9] Yes No BSD Yes
rclone rclone Go No [10] ? ? ? ? ? unidirectional [11] ? ? Yes RcloneBrowser MIT *BSD, Plan9, Solaris, Windows, macOS Yes Optimized for synchronization with cloud storage, behavior varies with the features supported by the remote location.
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 sync
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 Standard tool present on all Linux distributions.
SparkleShare sparkleshare C#, git Yes AES-256 [13] ? ? Yes Yes ? ? ? No Yes GPLv3 Windows, macOS Yes It can sync with any Git server over SSH.
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 renames one file [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 taskdAUR 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]

Incremental backups

Applications that can do incremental backups remember and take into account what data has been backed up during the last run (so-called "diffs") and eliminate the need to have duplicates of unchanged data. Restoring the data to a certain point in time would require locating the last full backup and all the incremental backups from then to the moment when it is supposed to be restored. This sort of backup is useful for those who do it very often.

See also:

Legend:

  • Name: the application name, linking to the ArchWiki article or the official website.
  • Package: a link to the package.
  • Implementation: the programming language, library, or utility that the application is based on.
  • Compressed storage: compression is used for storage.
  • Encrypted storage: encryption is used for storage.
  • Delta transfer: only the modified parts of files are transferred.
  • Encrypted transfer: data is encrypted by default when transferred over a network.
  • FS metadata: file system permissions and attributes are backed up.
  • Easy access: the backup is stored plainly in the file system, or is mountable as such.
  • Resumable: the backup can be resumed without restarting it if interrupted.
  • Handles renames: moved/renamed files are detected and not stored or transferred twice; it typically means that a checksum is computed for files or chunks thereof.
  • CLI: the application is command-line driven, i.e. it is scriptable.
  • Other interfaces: the application has the specified user interfaces, e.g. GUI, TUI, or web-based.
  • Licence: the licence of the server and client applications.
  • Other platforms: supported operating systems other than Linux.
  • Maintained: whether the project is maintained.
  • Specificity: brief notes about special features that notably set the application apart from the others.

Single machine

These applications are aimed at backing up data from the machine they are installed on, although the backup destination can be located on an external machine or storage media.

Chunk-based increments

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

Reason: Fill in the blanks. FS metadata column: What does Immature mean? Resumable column: What does Pausing only / Kinda through tar mean? (Discuss in Talk:Synchronization and backup programs#)

If a file is modified, these applications store only its changed parts at the next snapshot. Compared to #File-based increments applications, these are more space-efficient, especially when large files receive small modifications; on the other hand, the archived snapshots have to be opened with the backup application that created them, since the files have to be reconstructed from the stored binary diffs.

Name Package Implementation Compressed storage Encrypted storage Delta transfer Encrypted transfer FS metadata Easy access Resumable Handles renames CLI Other interfaces Licence Other platforms Maintained Specificity
Areca Backup arecaAUR Java Zip, Zip64 AES128, AES256 Yes Yes Yes No Pausing only 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 Deduplication based on variable length chunks; support both local and SSH-based remote backup destination.
btar btarAUR[broken link: archived in aur-mirror] C Yes Yes Yes Yes ? No ? ? Yes No GPLv3 Yes Redundancy, indexed extraction, multicore compression, input and output serialisation, tolerance to partial archive errors.
bup bup bup-gitAUR C, Python, git Yes No Yes Yes Immature Yes [28] pick up where you left off [29] Yes Yes bupsAUR GPLv2 NetBSD, Windows, macOS Yes Same storage format as 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 Supports storage on various cloud services natively and through rclone.
ZBackup zbackupAUR C++ LZMA, LZO AES Yes Yes ? planned [36] No Kinda through tar Yes No GPLv2 Yes Repository consists of immutable files.

File-based increments

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

Reason: Fill in the blanks. (Discuss in Talk:Synchronization and backup programs#)

If a file is modified, these applications store its new version entirely at the next snapshot. Compared to #Chunk-based increments applications, these are less space-efficient, especially when large files receive small modifications; on the other hand, often the archived snapshots can be opened without the need to have the backup application installed.

Specific legend:

  • Hard links: whether unmodified files are stored as hard links to previous versions.
Name Package Implementation Compressed storage Encrypted storage Delta transfer Encrypted transfer FS metadata Easy access Resumable Handles renames Hard links CLI Other interfaces Licence Other platforms Maintained Specificity
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 It copies itself to the server.
rdup rdupAUR C tar.gz gpg, blowfish and others ? ? ? Yes ? No Yes Yes No GPLv3 No Set of command-line tools.
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 Designed for full-system backups to dedicated devices. Yes

Network oriented

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

Reason: Fill in the blanks. Encrypted transfer column: What does Internet transfers only mean? (Discuss in Talk:Synchronization and backup programs#)

These applications have been designed to centralize the backup of several machines connected to a network, through a server-client model. In general they are more complicated to deploy, compared to #Single machine solutions.

Specific legend:

  • Control direction: Pull: server logs into client. Push: client initiates backup session.
  • Increment type: the strategy used to reduce used space by deduplicating data (i.e., besides compression).
    • file-based: if a file is modified, the entire new version is stored at each snapshot.
      • hard-links: whether unmodified files are stored as hard links to previous versions.
    • chunk-based: only the modified parts of files are stored at each snapshot.
Name Package Implementation Control direction Compressed storage Encrypted storage Delta transfer Encrypted transfer FS metadata Easy access Resumable Handles renames Increment type CLI Other interfaces Licence Other platforms Maintained Specificity
BackupPC backuppc Perl Pull Yes No Yes Yes Yes No Yes ? file-based, hard links [42] No Web GPLv2 Any (no client needed) Yes Identical files across backups of the same or different clients are stored only once.
Bacula bacula* in AUR C++ Pull Yes Yes ? Yes ? ? Yes ? file-based [43] Yes GUI, Web AGPLv3 Windows, macOS Yes
burp burp-backupAUR librsync Push Yes Yes Yes Yes Yes ? Yes ? chunk-based [44] Yes burp-ui AGPLv3 Windows, macOS Yes
SafeKeep safekeepAUR rdiff-backup Pull No No ? Yes ? ? ? ? chunk-based [45] Yes Yes GPL No Integrates with LVM and databases to create consistent backups. Bandwidth throttling.
Snebu snebuAUR[broken link: archived in aur-mirror] C Push or Pull Yes No ? Yes ? ? ? ? file-based [46] Yes No GPLv3 ? Supports arbitrary retention schedules.
Synbak synbak Multitool wrapper ? Yes No Yes Yes Yes ? ? ? ? No Web GPLv3 Yes Unifies several backup methods.
UrBackup urbackup* in AUR C++ Pull No No Yes Internet transfers only Yes Yes Yes Yes file-based,hard-links and symlinks[47]/chunk-based CoW-Snapshots[48] Yes (client) GUI, Web AGPLv3+ Windows, macOS Yes Identical files across backups of the same or different clients are stored only once. Integrates with LVM, dattobd and btrfs for file system snapshots.

Version control systems

While version control systems are mostly used for source code, they can track any files in a directory.

See List of applications/Utilities#Version control systems and dotfiles.

See also