rsync требует rsync-путь, когда удаленный rsync находится в пути

11

Я совершенно сбит с толку относительно того, почему rsync требует флаг --rsync-path, даже если удаленный rsync находится в пути.

Рассматривать:

$ 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]

тогда я попытался добавить --rsync-путь

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

Итак, первый rsync не был успешным, потому что он искал rsync в / usr / local / bin, но как только я передаю очевидный путь для rsync с помощью --rsync-path, он работает.

Почему это? (эта командная строка выдается rake deploy в octopress)

Пауло Матос
источник
Есть ли у вас какие-либо принудительные команды в конце пункта назначения? Что-нибудь в .bashrc или .profile, которое может установить локальную переменную среды?
SmallClanger
$ cat ~/.bashrc | grep PATHничего не возвращает
Пауло Матос
Если вы просто ssh в себе и запускаете, which rsyncчто вы получаете?
SmallClanger
2
$ ssh pmatos@domain.com which rsyncвозвращается/usr/bin/rsync
Пауло Матос
Weird. Схватившись за соломинку, теперь: Является ли возможно , ваш местный Rsync aliasэд к rsync --rsync-path(или какая - либо другая местная оберткой)?
SmallClanger

Ответы:

2

Моя память сейчас довольно размыта по этому поводу, но причина, по которой это происходило, заключалась в том, что я в какой-то момент использовал GNU stow на rsync и создал несколько символических ссылок, которые запутали rsyncместоположение. Это было отсортировано после долгих потянув за волосы. Я теперь намного легче на волосах, но с другой стороны, у меня есть работа rsync. Это должно быть победой, если вы спросите меня.

Пауло Матос
источник