March 20, 2007 3:58 PM
In my rush of initial satisfaction with SuperDuper!, I missed one or two flies in the ointment that make the situation less than ideal. The good news is that there are easy solutions to all of the problems that are graceful enough for the speed, reliability, and metadata savvy of SuperDuper! to win out.
Problem #1: Sleeping after multiple scheduled backups
This one is no biggie. The problem is that I’ve got multiple drives that I’m backing up and I want SuperDuper! to automatically back up whatever drives I’ve got plugged in over night. Normally this is no problem, SuperDuper! is very graceful about failing when it doesn’t have access to a drive. However, I’ve got a MacBook Pro and it’s on almost all the time pumping out heat like they will and I don’t think it’s a good idea to start having her awake overnight.
Fortunately there’s the included option to put your machine to sleep after copy. But wait, I’ve got multiple backups scheduled to start all at the same time. While it is smart about doing backups scheduled for the same time one after another, it isn’t smart enough to hold off on putting the machine to sleep until it’s done with the last one. Oops.
The solution is pretty obvious and simple. Stagger the schedules by one minute, so that you can control which one happens last and make that the one that puts the machine to sleep. Additionally I schedule the internal hard drive backup last because I’m always going to have the internal drive connected so it won’t skip the backup due to a drive not being plugged in and then leave poor Mallory awake overnight.
The only remaining problem is that I have to remember to wake Mallory up in the morning and put away the backup drive before unplugging it, but that’s no different from any other program. Rumor has it that SuperDuper will automatically mount a drive that’s plugged in but not mounted and then unmount it when it’s done, so I’ll have to try that out tonight and see if it works.
Update: Interestingly it didn’t work for me, but it clearly tried to. One of my external drives would mount up ok, but the backup drive that data was going to be copied to failed to mount. I’m not sure whether that’s a drive specific issue or what. My backup drive can sometimes take a while to mount so maybe it timed out before mounting, but I tried it several times and the same thing happened each time. And anyway, it isn’t a big deal to spend an extra 30 seconds waking up my computer to eject the drives.
Problem #1 The incredible expanding sparse image!
This is one that I really should have remembered about, but the documentation failed to remind me. Sparse images are great because they allow me to backup multiple drives all on to one large backup drive (or NAS or RAID, etc) and they will expand flexibly in order to contain as much data as I need instead of acting like normal images and being of a fixed size no matter how much data is stored in them. Except they never shrink on their own. That means that my image will keep growing just like I wasn’t deleting files that I’ve removed from my hard drive even though I don’t get the benefit of holding on to old snapshots like I would with Retrospect.
There are two ways to solve this problem. One is to simply occasionally delete the image file and make a fresh new backup (it takes a long time, but not longer than overnight). This might be a good idea to do periodically in any case.
The second, somewhat more elegant solution, is to use the included command line disk image utility, hdiutil, to compact the images which will reclaim any unused space. Frankly, I don’t know why SuperDuper! doesn’t have an option to do that itself. Knox, a nice little utility that helps manage encrypted sparse images for secure document storage will suggest compacting when you could recover disk space and take care of it for you. It would be nice for SuperDuper! to have the option to compact your image file if it will reclaim more than x amount of space (something it should be easy to find out since it knows how many files it deleted).
But it isn’t hard to do yourself periodically. And if you don’t like the idea of doing it in the command line, here’s how to make a double clickable version:
What we want to do is go to whatever folder has the sparse images in it and run the command
hdiutil compact on it. For instance, if I’m storing my images on the top level of a hard drive that I’ve not very creatively named “Backup,” the following script would do the job:
#!/bin/sh cd /Volumes/Backup for filename in *.sparseimage do echo "Compacting $filename with hdiutil..." hdiutil compact $filename done
/Volumes/Backup with the location of your images. Better yet if you save that as a text file with the extension
backup compactor.command and run
chmod 755 "backup compactor.command" you will have a double clickable file that will run the shell script. It’ll start up Terminal which you’ll have to exit yourself, but it’s otherwise pretty slick.