Are copies using rsync faster than using Finder

copy/pastefinderrsyncterminal

So – I have a question about using rsync in Terminal. I need to move a Time Machine backup off of an external drive in order to reformat it. The 'backups' folder is nearly 300 GB. At first I tried to use CarbonCopyCloner to create a sparseimage on the disk I am moving the data to. That didn't work because, according to Bombich, TM backups are treated differently and can't be processed by CCC.

Then I decided to use Disk Utility to create a new 300GB SparseImage on the destination and use rsync to copy the backup folder to the new SparseImage. I used the rsync command sudo rsync -va --progress and dragged the source and destination paths into the Terminal window. After I authenticated, Terminal started creating a list of files to deal with – but this listing task went on for hours, which seems to completely defeat the idea of creating an efficient transfer. What did I do wrong? Should I not have asked for verbose responses – or did I make some other error.

Eventually the task completed, but it took over two days using a USB 2 wired connection. Would this have taken the same amount of time if I had just dragged the folder across using Finder?

Obviously – I am a noob with Terminal, so any help will be much appreciated.

Best Answer

You didn't do wrong, but the point with rsync is that after the initial backup/copy, subsequent rsync runs are clever enough to only copy/backup stuff that's changed. So say you do your 300GB backup, then a week later want to backup again, if you've only made 5GB of changes on your disk, then rsync will only try to edit/backup this 5GB, rather than you having to copy over the full 300GB again. This is the time saving you benefit from when using rsync, and you only get it when you're running regular backups of the same disk.

So the answer to your question is no, for a one off copy operation, rsync and finder are likely to be exactly the same - indeed, it may be the case that finder is slightly faster. Rsync is for keeping/maintaining an up-to-date backup of a working disk, and the time savings are in the long-run, not taking the initial backup.

To get the benefits from rsync, you should take a copy of your rsync command, and store it in a way you can run it again at some time in the future (for example, you might embed it in a batch/script file that you can run periodically in the future). The next time you run the same backup, it might take 5 minutes, since it's unlikely that you will have changed that much on your disk.

So for example, here's the content of the script file I use to keep an up-to-date backup of my music folder on my mac - this is set to run every 24 hours:

#!/bin/bash
rsync -ariv /Users/myuser/Music /Volumes/data/media/myuser

The first time I ran this it took ages too, but now, when I run it again, it just backs up what's changed in my Music folder, and might take a minute or two. Meanwhile, I know that I've got a 100% up-to-date copy of my music folder in my backup drive that I can go to should my primary drive fail.