I've been using rsync to do my backups for a while, since it is very easy and fast. Hope you can get some ideas from my backup script:
# rsync options:
# transfer files (t),
# recurse directories(r)
# work verboraly (v),
# delete files on receiving site, if they not exist on sending site (-delete)
# show progress (P)
# compress during file transfer (z)
# max difference in time stamps is 2 sec (modify-window)
# safe links (as files when another file system / mount point)
RSYNC_OPT="-zrtv --delete --modify-window=2 --safe-links"
# source folder (where all my files that require backup are placed)
# remote folder (where my external usb-hdd is mounted prior to backup)
# run the program ;)
rsync $RSYNC_OPT $LOCAL_SCR $REMOTE_DST
As I use ext2fs at both sync-points, I don't care about the sym-links. I think, they are just omitted, when your destination is a fatfs, and file ownership data is not transferred either.