Software for syncing internal and external hard drives

Published on in Cool tools

I'm looking for a software that does 2-way syncing between my MacBook's hard drive and an external hard drive. Syncthing vs rsync vs Unison vs FreeFileSync vs Resilio Sync... oh my!

Table of contents

My use case

Problem

I have important files (photos and such) scattered on three computers:

  • A MacBook that I started using 9 months ago.
  • A Lenovo laptop (Windows) that I stopped using 9 months ago because I switched to the MacBook.
  • A custom-built desktop computer (Windows) that I stopped using 27 months ago because I switched to the Lenovo laptop.

It's a mess! And I don't have back-ups. 🙈

Solution

I want to:

  1. Copy important files on my current computer to an external hard drive.
  2. Copy/move important files on the two older computers to the same external hard drive.
  3. Sync the external hard drive and my current computer's hard drive.

This way I'll have two copies of every important file:

  • One copy on my current computer's hard drive.
  • Another copy on my external hard drive.

That's a good start!

For this I'll need a software that does 2-way syncing.

Comparing software

Syncthing – nope

I have never used Syncthing, but I have heard it's good. Kinda like Dropbox:

Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time [...].

But Syncthing doesn't satisfy my needs at this point. From Syncthing's FAQ:

Does Syncthing support syncing between folders on the same system?

No. Syncthing is not designed to sync locally and the overhead involved in doing so using Syncthing's method would be wasteful. There are better programs to achieve this such as rsync or Unison.

Verdict: nope, can't use Syncthing in my case.

rsync – nope

Quick googling reveals that rsync doesn't support 2-way syncing. Or at least not in a straightforward way, and I'd like a simple solution for now.

I need 2-way syncing because if I add files to the external hard drive from my old computers, I want the new files to be synced/copied to my current computer.

Verdict: nope, can't use rsync in my case.

Unison – maybe

Unison was mentioned in Syncthing's FAQ and in the Stack Overflow page about rsync. And it indeed looks promising:

One caveat that I came across with: Unison can't run on a "heterogeneous network." In other words, Unison binaries on your different devices must be "exactly the same version, compiled with exactly the same version of various libraries," or you'll run into problems. This caveat doesn't apply to me for now since I would be installing Unison only to my current computer, but this is good to know and makes me wary of using Unison (what if I would later like to install it on another device?).

Verdict: Unison might fit the bill, but is there anything better?

FreeFileSync – my choice

FreeFileSync apparently works quite much like Unison.

I found someone saying on Hacker News that FreeFileSync has better GUI than Unison. Since googling "FreeFileSync vs Unison" doesn't yield many results, I might go ahead and trust that single internet stranger's word about the GUI.

Verdict: FreeFileSync should fit the bill and might be better than Unison.

Resilio Sync – costs money

Resilio Sync is a "fast, reliable, and simple file sync and share solution, powered by P2P technology."

The Home edition costs $59.90 (one-time payment). That's not much, but I don't want to spend money on a syncing solution (at least not yet), so I'll skip Resilio Sync for now. (I don't even know if Resilio Sync would fit my needs.)

Verdict: Resilio Sync costs money, so I won't even consider it for now.

Next steps

All right, FreeFileSync is my choice.

After I have used it to have two copies of my important files, I want to:

  1. Periodically (or preferably automatically) sync my current computer's hard drive and the external hard drive.
  2. Periodically (or preferably automatically) back up the files to an off-site location, e.g. to Backblaze B2.

This way I'll satisfy the 3-2-1 back-up strategy:

  • Have at least 3 copies of data
  • with 2 of the copies on different local devices
  • and 1 copy in an off-site location.

But I'm getting ahead of myself... I should start by installing FreeFileSync.

Oh, but how about buying an external hard drive? Yeah, I've already got one – I bought it 3 years ago for this purpose but haven't even unboxed it yet. 🤡