Transfer files either to or from a remote host. Can transfer single files, or multiple files matching a pattern.
# To transfer file from local to remote host:
rsync <path/to/file> <remote_host_name>:<remote_host_location>
# To transfer file from remote host to local:
rsync <remote_host_name>:<remote_file_location> <local_file_location>
# To transfer file in archive (to preserve attributes) and compressed (zipped) mode with verbose and human-readable progress:
rsync -azvhP <path/to/file> <remote_host_name>:<remote_host_location>
# To transfer a directory and all its children from a remote to local:
rsync -r <remote_host_name>:<remote_folder_location> <local_folder_location>
# To transfer only updated files from remote host:
rsync -ru <remote_host_name>:<remote_folder_location> <local_folder_location>
# To transfer file over SSH and delete local files that do not exist on remote host:
rsync -e ssh --delete <remote_host_name>:<remote_file> <local_file>
# To transfer file over SSH and show global progress:
rsync -e ssh --info=progress2 <remote_host_name>:<remote_file> <local_file>
# ---
# copy files from remote to local, maintaining file propertires
# and sym-links (-a), zipping for faster transfer (-z), verbose (-v).
$ rsync -avz host:file1 :file1 /dest/
$ rsync -avz /source host:/dest
# Copy files using checksum (-c), rather than time, to detect if the file
# has changed. Useful for validating backups.
$ rsync -avc /source/ /dest/
# --archive archive mode
# --checksum skip based on checksum, not mod-time and size
# --progress show progress during transfer
# --delete extraneous files from dest dirs
# --delete-excluded also delete excluded files from dest dirs
# --force force deletion of dirs even if not empty
# --ignore-errors delete even if there are I/O errors
# --human-readable output numbers in a human-readable format
# -- exclude exludes file(s) from syncing
$ rsync --archive \
--checksum \
--progress \
--delete \
--delete-excluded \
--force \
--ignore-errors \
--human-readable \
--exclude '*.pyc' \
--exclude '.DS_Store' \
<source_dir> <dest_dir>