When a small business cannot afford industry standard backup tools like Acronis, or they are working off a desktop machine and need a more flexible backup than what is built into their platform, what options are there? One option that many SMBs use is SyncToy, but that software hasn’t had a new release since 2009. Another option is the open source backup tool FreeFileSync.

FreeFileSync offers these features:

  • Detect moved and renamed files and folders
  • Run comparison before sync
  • Copy locked files (using Volume Shadow Copy Service)
  • Detect conflicts and propagate deletions
  • Binary file comparison
  • Symbolic Links support
  • Sync as a batch job (automated)
  • Process multiple folder pairs
  • Copy NTFS extended attributes and security permissions
  • Support long path names > 260 characters
  • Fail-safe file copy
  • Comprehensive error reporting
  • Cross-platform (Windows/Linux)
  • Expand environment variables (such as %USERPROFILE%)
  • Access drive letters by volume name
  • 64-bit support
  • Version control
  • Optimal sync sequence to prevent disc space bottlenecks
  • Full Unicode support
  • Include/exclude filters
  • Local or portable installation
  • Recurring backups via macros %time%, %date%
  • Case sensitive synchronization
  • Built-in locking serializes multiple jobs on same network share

FreeFileSync is not exactly point and click, and it does require you to have at least a basic understanding of these backup plans:

  • Automatic: Identify and propagate changes on both sides using a database. Deletions, renaming, and conflicts are detected automatically.
  • Mirror: Right folder is modified to exactly match left folder upon completed sync.
  • Update: Copy new or updated files from left folder to right folder.

It is also possible to create a custom backup type. For a custom backup, you can configure these possible options:

  • Copy new items right to left
  • Delete left item
  • Copy new items left to right
  • Delete right item
  • Overwrite right item
  • Overwrite left item
  • Do nothing
  • Leave unresolved conflicts

Installing FreeFileSync

Here are the installation steps for Windows:

  1. Download the installer file.
  2. Double-click the downloaded file.
  3. Walk through the installation wizard.

Here are the installation steps for Ubuntu Linux:

  1. Open a terminal window.
  2. Issue the command sudo add-apt-repository ppa:freefilesync/ffs to add the repository.
  3. Update apt with the command sudo apt-get update.
  4. Install FreeFileSync with the command sudo apt-get install freefilesync.

Using FreeFileSync

We’ll create an automatic backup so most of the dirty work is handled by the application. During the creation process, you’ll see how simple it is to create the other types of backups.

First, you must decide on the source and targets for the backup. I will working on a Ubuntu 12.10 machine (the process for setting up the backups is the same on Windows and Linux — the only adjustments Windows users need to make are directory paths). I want to back up (sync) my /home/jlwallen/Pictures directory to a Pictures directory on an external drive.

Open FreeFileSync and, when the main window appears (Figure A), click the Browse button in the left pane. Locate your source directory (in my case /home/jlwallen/Pictures). You could also enter the path to that directory in the text area above the left pane.
Figure A

Depending upon your skill level, you might be intimidated by the interface, but the tool is much easier to use than it looks. (Click the image to enlarge.)

Then, you’ll do the same thing for the right pane and locate the target directory. Once you locate the target, you’ll want to do a comparison run on the two locations. Click the Compare button and, the results of the comparison will appear very quickly. You get plenty of information (Figure B) about what is going to happen when you click the Synchronize button.
Figure B

In the bottom right corner, you get a snapshot of exactly what is going to happen when the backup occurs. (Click the image to enlarge.)

If you need version control on a backup, this is also possible. If you click the gear icon next to the Synchronize button, the Synchronization Settings window will appear (Figure C). Click the Versioning button, and then you can configure the versioning limit for a backup.
Figure C

How errors are handled is also configured in this window. (Click the image to enlarge.)

Let’s say you want to save and schedule this particular backup.  FreeFileSync does not have a built-in scheduler, so you need to save the backup as a file and then use your operating system’s built-in schedule to schedule the saved backup file. Here’s how:

  1. Once you set up your backup exactly how you want, go to Advanced | Create Batch Job.
  2. In the Batch Job window (Figure D), make sure everything is set exactly how you need.
  3. If the backup job is to run without user intervention, make sure to disable the Show Progress Dialog checkbox in the Batch Settings tab.
  4. In the Batch Settings tab, set Error Handling to Ignore.
  5. Save the backup script with a unique name (by default the name will be SyncJob.ffs_batch) by clicking the Save As button.

Figure D

From this window, you can set up backup filtering. (Click the image to enlarge.)

Now that the backup script is written, the final step is to use your built-in scheduling tool to run the script when necessary. If you’re unsure of how to use cron for Linux, you could install a handy tool called GNOME Schedule to gain a nice GUI tool for scheduling cron jobs.

You now have a reliable backup scheduled.


Although you won’t benefit from full-metal backups and restores, if you’re looking for a flexible and easy to use data backup solution, give FreeFileSync a try, and see if it meets your needs.