rsync -avh source/ destination
-a, archive (recursive and preserve everything about the file)
-v, verbose
-h, human readable sizes
Also useful:
-n, dry run
-z, compress
--delete, delete files that don't exist on the source side
-c, decide whether to copy based on checksum, rather than default of mod-time and size