If you're like me, you have a number of cloud services syncing to and from your desktop. Also, you might not always trust that those cloud service providers will always have reliable copies of your data. To that end, I always back up cloud directories to either network-attached drives or locally attached drives. With such a system in place, I always know there's a very good chance I always have a copy of my data at the ready.
But considering the inordinate amount of back up utilities on the market, what software do you use for this task? One option is FreeFileSync.
As you might expect (based on the name), this app is free. FreeFileSync is also open source and cross-platform (available for Linux, macOS, and Windows). This particular solution is a folder comparison and synchronization software that does an outstanding job creating and managing back-up copies of all your data—even data you sync with a cloud service. Instead of copying every file every time, FreeFileSync first determines the differences between source and destination files/folders and then only transfers the minimum amount of data needed for a successful (and complete) sync.
SEE: Quick glossary: Cloud platform services (Tech Pro Research)
I want to show you how I use FreeFileSync to back up Dropbox to a locally attached directory on Elementary OS. Although the installation varies from platform to platform (the biggest difference being that running FreeFileSync on Linux does require a tiny bit of manual installation, whereas installing on Windows and macOS is handled via the standard methods.
With that said, let's get this working.
The installation of FreeFileSync on Linux requires the use of the command line. Since the version found in the standard repositories is out of date, you'll want to download the file from the FreeFileSync download page. Once that download completes, open a terminal window and change into the directory housing the download. Next, extract the contents of the file with the command:
tar xvfz FreeFileSync*.tar.gz
The above command will create a new directory, called FreeFileSync. Change into that directory with the command cd FreeFileSync. The next step is to copy the necessary executables. Do this with the command:
sudo cp FreeFileSync RealTimeSync /usr/bin/
With the above command complete, you can now run FreeFileSync with the command:
Working with FreeFileSync is actually quite easy. What you must do is create a sync pair by clicking the left Browse button in the right pane of the main window (Figure A).
Locate the directory to added to the sync pair. Once that is in place, click the right Browse button to add the second directory to the sync pair. With that taken care of, you can set options for the comparison (blue gear), the filter (red funnel), and the sync (green gear). In the Settings window (Figure B), you can set options such as:
- Comparison variant (file time and size, file content, file size).
- Include symbolic links.
- Ignore time shift.
- Ignore errors.
- Automatic retry.
- Include filter.
- Exclude filter.
- Sync variant (two way, mirror, update, custom).
- Delete file options (Recycle bin, permanent, versioning).
- Log path.
- Run a command (upon completion, on errors, on success).
Once you're happy with your sync/comparison/filter options, click the Compare button and a comparison will run on the sync pair. When the comparison completes (Figure C), you can view the comparison results before actually running the sync.
Click the Synchronize button, verify your options (Figure D), and click Start. The sync will begin and (if there are no problems) complete.
During the sync, a window will display the progress (Figure E). You can stop or pause the sync at will.
Once the sync completes, I suggest clicking the Save button to save the sync configuration (otherwise you have to reconfigure the sync pair every time you open FreeFileSync).
Creating a batch job
The one caveat to FFS is that it doesn't include the ability to schedule sync jobs. Instead, you must setup your sync pairs and then create a batch job. Once you have the batch job created, you can then use your platform's built in scheduler (such as cron) to then schedule the job.
To create a batch job, setup your sync pair exactly how you want it and then click File | Save as Batch job. In the resulting window (Figure F), make sure to enable the checkboxes for Run minimized and Auto-Close.
Click Save as, give the batch job a name/location, and click Save. You will then have a script (ending with .ffs_batch) that you can run with your platform's scheduling tool.
Make it cloudy
I've been using FreeFileSync to back up my local Dropbox, Google Drive, and Zoho Docs folders to a mounted external drive without a problem. If you've been looking for a free, open-source tool to make this happen, FreeFileSync might be what you need.
- How to install and use the Duplicati cloud backup solution (TechRepublic)
- How to install the networkable UrBackup (TechRepublic)
- Insync 1.5 has made some much-needed improvements (TechRepublic)
- How to install crontab-ui for remote use (TechRepublic)
- Backup best practices: The 3-2-1-off-and-away strategy (ZDNet)
- How to backup Gmail: The ultimate guide (ZDNet)
Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website jackwallen.com.