Best way to keep 2 external USB harddrives in synch

Any suggestions of software to keep 2 external USB drives in synch?

I have two 2TB USB drives connected to a computer. One drive is storing around 1TB of data so far and I would like the second drive to mirror the other drive (ghetto USB raid).

Optimally I would like to be able to always just deal with the primary drive and the secondary drive would just automatically mirror the contents of whatever is on the primary usb drive. This synchronization could happen as changes occur or nightly. It doesn't really matter. Because of the amount of data it will probably need to keep track of changes because copying 1TB+ of data from USB to USB is slow.

Any suggestions on how I could set this up? Each drive should be useable without the other (exact mirror) but I will be using one as a primary that should be the 'master' drive.

EDIT: Running Windows 7 64-bit.


Automatic on a timer - Cobian Backup

Manual when you want to start - Microsoft Sync Toy


FreeFileSync (http://sourceforge.net/projects/freefilesync/). Faster than Sync Toy. Open source. Updated frequently. Has an associated utility that constantly checks for updates to one hard disk (or directory) and mirrors those changes to the other. (Yes, I know I'm answering a three year old thread, FFS was around then, and was a superior choice then, and is a superior choice now.)

You can set it to run a preset task at a scheduled time using Windows Task Scheduler, by the way.

edited 2017-02: Another great program is Bvckup2 (https://bvckup2.com/). Turn off the archiving feature and it will just mirror C to D. Will run on a schedule. It's not free though.


Allway Sync - can sync everything in both directions, is also triggered when a USB drive is inserted.


You could use SyncToy with Windows Task Scheduler. Once installing Synctoy please see below.

1) Click on Start, All Programs, Accessories, System Tools, Scheduled Tasks to open up Task Scheduler

2) Click on Add Scheduled Task, Click on Next

3) Scroll down and click on the SyncToy option, click on Next

4) Under "Perform this Task" choose Daily and click Next

5) Now choose a start time, I would recommend either a time when you first turn on your computer or late in the evening when you are done for the day. Choose Daily again for when to perform this task and choose the current date then click Next.

6) Here's the tricky part, in order for the task to be scheduled, you'll need to tell the scheduler which user to perform the task for and the username for that profile. Enter the username and password for this profile in this section and click Next.

7) On the next screen check the box for "Open advanced properties for this task when I click Finish" and then click Finish

8) When the Advanced Properties box opens, look under the Task tab for the Run line. It should look similar to the one below.

"C:\Program Files\Microsoft\SyncToy\SyncToy.exe"

Make the Run command look like the following to allow SyncToy to run all the folder pairs.

"C:\Program Files\Microsoft\SyncToy\SyncToy.exe" -R

9) Click Ok and close the Scheduled Tasks window.

Or you can use synctoycmd.exe insted, it enables it to run in the background.