$ curl cheat.sh/
# To copy files from remote to local, maintaining file properties and sym-links
# (-a), zipping for faster transfer (-z), verbose (-v):
rsync -avz host:file1 :file1 /dest/
rsync -avz /source host:/dest

# To copy files using checksum (-c) rather than time to detect if the file has
# changed. (Useful for validating backups):
rsync -avc <src> <dest>

# To copy contents of /src/foo to destination:
# This command will create /dest/foo if it does not already exist
rsync -auv <src> <dest>

# To explicitly copy <src> to <dest>
rsync -auv <src> <dest>

# To copy file from local to remote over ssh with non standard port 1234 to
# destination folder in remoteuser's home directory:
rsync -avz -e "ssh -p1234" <source> <username>@<host>:<dest>

# rsync
# Transfer files either to or from a remote host (not between two remote hosts).
# Can transfer single files, or multiple files matching a pattern.

# Transfer file from local to remote host:
rsync path/to/local_file remote_host:path/to/remote_directory

# Transfer file from remote host to local:
rsync remote_host:path/to/remote_file path/to/local_directory

# Transfer file in [a]rchive (to preserve attributes) and compressed ([z]ipped) mode with [v]erbose and [h]uman-readable [P]rogress:
rsync -azvhP path/to/local_file remote_host:path/to/remote_directory

# Transfer a directory and all its children from a remote to local:
rsync -r remote_host:path/to/remote_directory path/to/local_directory

# Transfer directory contents (but not the directory itself) from a remote to local:
rsync -r remote_host:path/to/remote_directory/ path/to/local_directory

# Transfer a directory [r]ecursively, in [a]rchive to preserve attributes, resolving contained soft[l]inks , and ignoring already transferred files [u]nless newer:
rsync -rauL remote_host:path/to/remote_file path/to/local_directory

# Transfer file over SSH and delete local files that do not exist on remote host:
rsync -e ssh --delete remote_host:path/to/remote_file path/to/local_file

# Transfer file over SSH using a different port than the default and show global progress:
rsync -e 'ssh -p port' --info=progress2 remote_host:path/to/remote_file path/to/local_file

Follow @igor_chubin cheat.sh