It's clearly documented that drush rsync requires one of the sites to be local. I'd like to understand why this restriction is in place. I have configured site aliases to work with ssh, and I'm able to ssh into a system and then launch drush rsync. Why can't do that?

1 Answer 1


Drush just performs the following in commands/core/rsync.core.inc:

$exec = "rsync -e 'ssh $ssh_options' $options $source $destination";

This isn't compatible with rsync daemons, as stated in the rsync manual:

you must not specify the --rsh (-e) option.

Now, if you want to use drush to rsync between two remote environments, you'll need to install Drush on the source, then:

drush rsync @remote.source @remote.target
  • 2
    This answer is completely correct. Some extra info: there was some work to get drush to work with rsync daemons at drupal.org/node/1473524. It seems, though, that if you want to do that, then you are better off calling rsync directly, and use "drush dd" to look up the paths you need. Oct 24, 2013 at 19:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.