Rsync: Difference between revisions
Jump to navigation
Jump to search
Xdelaruelle (talk | contribs) No edit summary |
mNo edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 2: | Line 2: | ||
{{Portal|User}} | {{Portal|User}} | ||
{{Portal|Service}} | {{Portal|Service}} | ||
{{Portal| | {{Portal|Tutorial}} | ||
[[Image:Scp_rsync.png|right|thumb|Transfer time of 2531 source code files (total size: 46M, part of the linux kernel sources) between two Grid5000 cluster nodes, with varying latency artificially added using Netem.]] | [[Image:Scp_rsync.png|right|thumb|Transfer time of 2531 source code files (total size: 46M, part of the linux kernel sources) between two Grid5000 cluster nodes, with varying latency artificially added using Netem.]] | ||
Latest revision as of 10:16, 28 July 2009
Like scp, rsync is a tool for transfer of files between systems. Such tools are very useful on Grid5000, for example to synchronize your local source tree with the one on the cluster node you are using.
rsync has several advantages over scp :
- its protocol is more efficient. scp considers one file after the other, which doesn't perform very well on network links with high bandwidth but medium latency, like the typical Grid5000 inter-cluster link, or the link between your lab and your cluster node. Also, scp performs poorly (compared to rsync) when transfering many small files (your typical source tree).
- when a remote copy is already present, rsync only transfers the differences between your local copy and the remote copy. This is very useful during development, because you often have to transfer only small changes (a bug fix).
Example
Transfers the local directory named "source" to the remote host in /tmp
rsync -avzP source remotelogin@remotehost:/tmp
Important: With scp, "scp source rlogin@rhost:/tmp" and "scp source/ rlogin@rhost:/tmp" are the same. With rsync, they aren't :
- With source, a directory named source is created in /tmp, with the files in it.
- With source/, the files in source are copied directly in /tmp.