Rsync duplicates the local file tree on the remote machine by:
Ignoring files that are identical on the local and mirror machines.
Copying any files that don't exist on the mirror.
Deleting any files on the mirror that aren't on the local machine.
Sending over only the changed portions of any files that differ between the local and remote machines.
This last feature sets it apart from other synchronization tools; by only sending over the changed portions, one conserves bandwidth by only sending over the changed bytes.
Rsync was written with ssh in mind. By adding the "-e ssh" to the command line, rsync carries all its communication over ssh.
The tool, and more info, are available at http://rsync.samba.org