Backing up and verifying files in Mac OS

There are some interesting backup tools for system backups (Time Machine) but I want to just be able to copy and verify a directory (and its children).  I’ve heard that the commercial product Retrospect provides copy and verify functionality, but I’m cheap.

This is the method that I used.  I’d be interested on hearing feedback about it:

# Copy the files using ditto 
$ ditto /Volumes/Backup/columbus_da/ /Volumes/ghingexternal/columbus_da

# Get md5s for the original and copied files
$ find /Volumes/ghingexternal/columbus_day/ -exec md5 '{}' \; > md5s-new.txt
$ find /Volumes/Backup/columbus_day/ -exec md5 '{}' \; > md5s-old.txt

# Strip out the directory prefix from the md5 files
$ mv md5s-old.txt md5s-old.txt.bak
$ mv md5s-new.txt md5s-new.txt.bak
$ sed 's/\/Volumes\/ghingexternal\///' md5s-new.txt.bak > md5s-new.txt
$ sed 's/\/Volumes\/Backup\///' md5s-old.txt.bak > md5s-old.txt

# Compare the md5s of the copied files
$ diff md5s-old.txt md5s-new.txt

HFS filesystem woes

So I had this external firewire drive that I use both on my Linux box and my OS X box.  When I try to mount it under linux, I get an error saying “HFS-fs warning: Filesystem was not cleanly unmounted, running fsck.hfs is recommended.  mounting read-only”.  However, the drive works fine under OS X, and running fsck on my OS X box reports no problems.  I even tried running the linux port of the OS X fsck for HFS (afaik there is no native Linux version of the utility) as described at http://gentoo-wiki.com/HOWTO_hfsplus.  This reports no problems either, but it still doesn’t set that unclean flag back.  The only solution I can think of at this point is to modify the hfs kernel module to not do that chek so it will mount the drive read-write, set the bit back, and let me cleanly unmount the drive.  Then I can replace my modded module with the original, safety-conscious one.  This seems like a bad way to do it, but I couldn’t find a better alternative.