2014-01-26 13:57:33 -06:00
# rsync
2023-04-23 13:53:19 +02:00
> Transfer files either to or from a remote host (but not between two remote hosts).
> Can transfer single files or multiple files matching a pattern.
2021-10-13 11:22:50 +05:00
> More information: <https://manned.org/rsync>.
2014-01-26 13:57:33 -06:00
2023-04-23 13:53:19 +02:00
- Transfer a file from local to a remote host:
2014-01-26 13:57:33 -06:00
2019-05-23 16:19:14 +07:00
`rsync {{path/to/local_file}} {{remote_host}}:{{path/to/remote_directory}}`
2014-01-26 13:57:33 -06:00
2023-04-23 13:53:19 +02:00
- Transfer a file from a remote host to local:
2014-01-26 13:57:33 -06:00
2019-05-23 16:19:14 +07:00
`rsync {{remote_host}}:{{path/to/remote_file}} {{path/to/local_directory}}`
2014-01-26 13:57:33 -06:00
2023-04-23 13:53:19 +02:00
- Transfer a file in [a]rchive (to preserve attributes) and compressed ([z]ipped) mode displaying [v]erbose and [h]uman-readable [P]rogress:
2014-01-26 13:57:33 -06:00
2019-05-23 16:19:14 +07:00
`rsync -azvhP {{path/to/local_file}} {{remote_host}}:{{path/to/remote_directory}}`
2014-01-26 13:57:33 -06:00
2023-04-23 13:53:19 +02:00
- Transfer a directory and all its contents from a remote host to local:
2014-01-26 13:57:33 -06:00
2019-05-23 16:19:14 +07:00
`rsync -r {{remote_host}}:{{path/to/remote_directory}} {{path/to/local_directory}}`
2015-02-28 18:09:18 +00:00
2023-04-23 13:53:19 +02:00
- Transfer directory contents (but not the directory itself) from a remote host to local:
2019-02-11 14:49:40 +01:00
2019-05-23 16:19:14 +07:00
`rsync -r {{remote_host}}:{{path/to/remote_directory}}/ {{path/to/local_directory}}`
2019-02-11 14:49:40 +01:00
2023-04-23 13:53:19 +02:00
- Transfer a directory [r]ecursively, in [a]rchive (to preserve attributes), resolving contained sym[L]inks, and ignoring already transferred files [u]nless newer:
2015-12-30 01:40:29 +09:00
2022-02-20 13:44:04 -07:00
`rsync -rauL {{remote_host}}:{{path/to/remote_directory}} {{path/to/local_directory}}`
2015-12-30 01:40:29 +09:00
2023-04-23 13:53:19 +02:00
- Transfer a file over SSH and delete remote files that do not exist locally:
2015-02-28 18:09:18 +00:00
2019-05-23 16:19:14 +07:00
`rsync -e ssh --delete {{remote_host}}:{{path/to/remote_file}} {{path/to/local_file}}`
2017-12-05 19:37:48 +01:00
2023-04-23 13:53:19 +02:00
- Transfer a file over SSH using a different port than the default and show global progress:
2017-12-05 19:37:48 +01:00
2020-10-17 23:27:38 +03:00
`rsync -e 'ssh -p {{port}}' --info=progress2 {{remote_host}}:{{path/to/remote_file}} {{path/to/local_file}}`