Я совершенно сбит с толку относительно того, почему 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)
$ cat ~/.bashrc | grep PATH
ничего не возвращаетwhich rsync
что вы получаете?$ ssh pmatos@domain.com which rsync
возвращается/usr/bin/rsync
alias
эд кrsync --rsync-path
(или какая - либо другая местная оберткой)?Ответы:
Моя память сейчас довольно размыта по этому поводу, но причина, по которой это происходило, заключалась в том, что я в какой-то момент использовал GNU stow на rsync и создал несколько символических ссылок, которые запутали
rsync
местоположение. Это было отсортировано после долгих потянув за волосы. Я теперь намного легче на волосах, но с другой стороны, у меня есть работаrsync
. Это должно быть победой, если вы спросите меня.источник