Ssh – Fastest way to copy folder that contains many files via SSH

copyssh

What is the best way to duplicate files on server via ssh?

In my case: I'm talking about duplicating magento shop. (15000 files ~ 50MB)

cp -a source destination

Is taking hours… (in my case server is 2.4 Xeon, 2GB RAM)

Best Answer

One word: rsync.

Note that if you're on a slow link, or the server is under heavy load, the tool used for copying won't be the bottleneck, and any way of copying will be slow anyway.

This should give you the basic usage for copying between your local computer and the remote server: http://oreilly.com/pub/h/38

To copy from local computer to a remote server (you need to replace the paths, user name and host address, of course):

rsync -avz -e ssh /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
  • -a archive
  • -v verbose
  • -z compress
  • -e ssh "use a SSH tunnel"

To copy in the other direction, switch the paths (first is from, second is to):

rsync -avz -e ssh remoteuser@remotehost.somewhere.example.com:/path/on/server /path/on/local/computer

But rsync is useful even for copying things around on the same server:

rsync -av /path-to/copy/from /path_to/copy/to