How can I reliably backup an external drive to another external drive?

Solution 1:

Another possible option: use rsync and a launchd job to execute it when the disk is mounted. I believe Time Machine uses a similar approach to running on disk mount. For the hourly execution, you can use cron. The discreet notification can be done in a number of ways (for instance sending a mail or the Growl extension which allows notifications to be sent from the command line). killall rsync should stop the backup safely if you need to pack up and go. Also rsync is also entirely capable of networked syncing.

It will take a bit of work to set up, but the advantages are:

  • it's versatile (see man rsync, they pretty much thought of everything)
  • it's discreet
  • it doesn't cost anything
  • rsync is quick

You may find this helpful for launchd jobs involving disk mounting.

Edit: I should add that the --partial option to rsync will mean that the backup is resumed after killall rsync.

Edit 2: You can use a Control Plane context instead of launchd if you prefer.

Solution 2:

I'm continually amazed by Carbon Copy Cloner's speed and advanced features. I just double-checked and confirmed that it can be used to clone external drive to another external drive.

It's free for a month's trial period with full functionality. I strongly recommend this app as the best option I'm aware of.

Alternatively, there is another excellent program Clonezilla (I've actually linked you to the company's Tuxboot page on Sourceforge, because Tuxboot is an amazing program for booting from USB flash drives):

Tuxboot helps you to create a bootable Live USB drive for Clonezilla live, DRBL live, Gparted live and tux2live. It is modified from unetbootin and runs on both MS Windows and GNU/Linux. You can choose to download the latest version of ISO file then create the live usb.

nb. You can actually use unetbootin on a Mac - there is a dmg download on Sourceforge I can't link to as new users are limited to two hyperlinks. I think to use Tuxboot on a Mac, you'll need to use CrossOver or Wine or one of those Windows emulation programs (I have done this successfully with CrossOver when I couldn't get the tar.gz installed).

But really, Carbon Copy Cloner has all the features you list and more so that's got to be your best option, I believe.