Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am quite confused as to why rsync requires --rsync-path flag even when remote rsync is in path.

Consider:

$ rsync -avze 'ssh -p 22' --delete public/ pmatos@domain.com:~/public_html
bash: /usr/local/bin/rsync: No such file or directory
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(601) [sender=3.0.7]

then I tried adding --rsync-path

$ rsync -avze 'ssh -p 22' --rsync-path=/usr/bin/rsync  --delete public/ pmatos@domain.com:~/public_html
sending incremental file list
...

So, the first rsync was not successful because it was searching for rsync in /usr/local/bin but as soon as I pass the obvious path for rsync using --rsync-path, then it works.

Why is this? (this command line is the one issued by rake deploy in octopress)

share|improve this question
    
Do you have any forced commands at the destination end? Anything in the .bashrc or .profile that might set a local environment variable? –  SmallClanger Oct 17 '12 at 12:20
    
$ cat ~/.bashrc | grep PATH returns nothing. –  Paulo J. Matos Oct 17 '12 at 13:52
    
If you just ssh in yourself and run which rsync what do you get? –  SmallClanger Oct 17 '12 at 13:56
    
$ ssh pmatos@domain.com which rsync returns /usr/bin/rsync –  Paulo J. Matos Oct 17 '12 at 15:07
    
Weird. Clutching at straws, now: Is perhaps your local rsync aliased to rsync --rsync-path (or some other local wrapper)? –  SmallClanger Oct 17 '12 at 16:18

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.