I have got an external hard drive (A) that contains my iTunes & Aperture libraries. It's not always plugged to my MacBook.
What's the best way to make a backup of it on another external hard drive (B) ?
Wanted features :
- fully automated (that executes itself hourly, or something like that)
- incremental (in order to be fast)
- only activates when both disks (A & B) are plugged in
- works with multiple backup disks (in order to have a backup at home and another at work)
- discrete indication that a backup is in progress
- ability to pause or stop backup (useful if I am in a hurry and have to disconnect external drives)
It would be nice if backup disks could be networked, but that's not mandatory.
I would have loved to use Time Machine in order to have an history, but it doesn't seem to work well with external hard drives that aren't always connected and I don't trust it for that use case (my internal SSD is backed up thanks to Time Machine, though).
Online backups aren't adequate because I have a very poor internet connection.
Best Answer
Another possible option: use
rsync
and alaunchd
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 usecron
. 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. Alsorsync
is also entirely capable of networked syncing.It will take a bit of work to set up, but the advantages are:
man rsync
, they pretty much thought of everything)rsync
is quickYou may find this helpful for
launchd
jobs involving disk mounting.Edit: I should add that the
--partial
option torsync
will mean that the backup is resumed afterkillall rsync
.Edit 2: You can use a Control Plane context instead of
launchd
if you prefer.