Local:
rsync -avh --no-compress --progress <source_dir> <dest_dir> --exclude <dir after source_dir> --append-verify
- a: archive
- v: increase verbosity
- h: human readable
- --no-compress: don't compress to transfer as it's local
- --progress: show progress
- --append-verify: can resume if interrupted / failure
- --exclude: don't copy the specified dir
Remote (SSH):
rsync -aHAXxv --numeric-ids --delete --progress -e "ssh -T -c arcfour -o Compression=no -x" user@<source>:<source_dir> <dest_dir>
- H: preserves hard-links
- A: preserves ACLs
- X: preserves extended attributes
- x: don't cross file-system boundaries
- --numeric-ds: don't map uid/gid values by user/group name
- --delete: delete extraneous files from dest dirs (differential clean-up during sync)
SSH:
- T: turn off pseudo-tty to decrease cpu load on destination.
- c arcfour: use the weakest but fastest SSH encryption. Must specify "Ciphers arcfour" in sshd_config on destination.
- o Compression=no: Turn off SSH compression.
- x: turn off X forwarding if it is on by default.