Rsync

From Grid5000
Jump to navigation Jump to search
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.

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.

External Links