In my previous post I stated a little what I would want/need of a nice backup/synchronization strategy. Now lets structure these into more precisely defined features and see which programs out there cover them. As a disclaimer upfront: Of course I only know a certain subset of backup software. If you have a noteworthy candidate in mind that I didn't mention, please don't hesitate to comment.

Features of backup/synchronization solutions

Tool GUI Remote 2-Way Versioning Auto-Add Incremental Storage Rotation Direct Access Meta-Sync Crypto
Duplicity no yes no no yes yes ? no no yes
rsnapshot no yes no no yes yes (file-level) Count yes no no
rdiff-backup no yes no no yes yes ? no (only latest) no no
bup no yes no yes, Git ? yes N/A ? no ?
Back In Time yes yes no no yes yes (file-level) Various conditions yes no no
Unison yes yes yes no yes no N/A N/A no no
Git yes yes yes yes no yes N/A yes no N/A
Git-Annex ? yes yes yes no N/A N/A N/A yes no
Dropbox, Ubuntu One, etc... no yes yes yes, auto yes ? ? ? no ?
Tool comes with a graphical user interface.
Tool allows 2 (or more)-Way sync between two machines, i.e.: Changes happened on both sides, and $tool is able to bring both sides to the same state somehow (possibly with some user interaction).
This term refers to the usual commit/merge mechanics of revision control systems. I.e.: The system at hand will be able to record diffent states of a number of files and allow going back to any of them. Additionally it will track a hierarchy of these states that allow branches and all that good jazz. Usually those systems allow for easy merging of text-based files one way or the other.
Files in a certain directory will be automatically tracked, this works not only for editing but also for adding/deleting files. Useful if file changes are happening very often and informing the system manually is considered a tedious task. Note: No arguing here that "Auto-add" is not always something desirable (e.g. there are good reasons why this "feature" is not enabled/available by default for revision control systems usually).
Incremental Storage
Backups based on older backups avoid storing data redundantly (i.e. re-using the data that is common for multiple versions of the backup)
For tools that do incremental backups this describes how rotation of backups is done. I.e. will it keep the latest $count backups, or keep backups until the harddisk is full, etc...
Direct Access
For systems with incremental storage it sometimes is the case that data must be compiled from various diff's before it can be accessed. With "direct access" I mean: The system allows accessing older versions of the data easily without any time-intensive precomputation.
Some systems (here: one) allow to communicate not all the files or patches between the files directly but only the information about which file is where in which state and then giving the user a way to synchronize certain file version from remote on-demand, I call this feature "meta-sync" here for brevity.
Does the tool (by itself) support encrypted storage? Note: Even if not for most tools it should of course be possible to use an encrypted filesystem or similar underneath.


  • Back In Time seems to be a promising candidate for handling protection against dumb things as well as protection against hardware failures. What I especially like is that there is a notification in the systray whenever it does something and the various ways of specificing conditions for when to remove old backups. This way the tool is (I assume) much less annoying in terms of sudden surprise i/o, full harddisks or unnecessarily rotated backups (than e.g. rsnapshot). I'll definitely give this one a try :)
  • 2-Way syncing, especially concerning the MP3-problem mentioned in the previous post is still an enigma to me. I found no tool that would handle MP3s in a special/smart way. E.g.: I rename a MP3 file and change its id3 tags, the tool should handle that as a rename only, i.e. I don't want to end up with 2 versions of the same file at the other end, neither do I want to have to explicetely tell the tool what happened.
  • Independently of the MP3 problem, concerning 2-Way sync I'm still not sure which approach is best: Unison tends to get slow which lots of data, the Git-based approaches seem to all require too much manual intervention. And I don't like the idea of syncing my private or semi-private data through a commercial third-party hoster. I found a list of Dropbox alternatives though, which sounds promising (especially the git-based tool SparkleShare), maybe I'll give that approach a try.
  • For syncing config-files I'll definitely stay with git for the time being, as for that use case I really want the safety and expliciteness of git.

EDIT: It turned out BackInTimes GUI just tricked me into believing it can do remote backups, it seems that is not the case. I'll continue my search a little and keep you guys posted when I have found something cool.

Comment on twitter