リモートrsyncがパスにある場合でも、rsyncに--rsync-pathフラグが必要な理由について、私はかなり混乱しています。
検討してください:
$ 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-pathを追加してみました
$ rsync -avze 'ssh -p 22' --rsync-path=/usr/bin/rsync --delete public/ pmatos@domain.com:~/public_html
sending incremental file list
...
したがって、最初のrsyncは/ usr / local / binでrsyncを検索していたため、成功しませんでしたが、-rsync-pathを使用してrsyncの明らかなパスを渡すとすぐに機能します。
どうしてこれなの?(このコマンドラインは、octopressのrake deployによって発行されたものです)
宛先側に強制コマンドがありますか?ローカル環境変数を設定する可能性がある.bashrcまたは.profileに何かありますか?
—
SmallClanger
$ cat ~/.bashrc | grep PATH
何も返しません。
自分でsshを実行して
—
SmallClanger、
which rsync
何を実行するのですか?
$ ssh pmatos@domain.com which rsync
リターン/usr/bin/rsync
変だ。今、ストローをつかんでいます:おそらくあなたのローカルrsync
—
SmallClanger
alias
はrsync --rsync-path
(または他のローカルラッパー)にエディットされていますか?