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).
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.