BLOGTIMES
2020/11/11

リモートとローカルで rsync のパスが違う場合は --rsync-path を使う必要がある

  cli 
このエントリーをはてなブックマークに追加

ssh を使ってマシン間で rsync をする際に、リモートの rsync に PATH が通っていないと rsync: command not found というエラーが出てしまって困ったので、解決方法をメモ。

エラーは具体的にはこんな感じで出ます。

$ rsync -e ssh -av foo_host:/path/to/src/ /path/to/dst bash: rsync: command not found rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: error in rsync protocol data stream (code 12) at io.c(228) [Receiver=3.2.3]

--rsync-path オプションで解決

マニュアルを確認してみると --rsync-path= というオプションがあるので、これを使ってリモートの rsync のパスを指定してやれば OK です。

rsync(1) man page

--rsync-path=PROGRAM Use this to specify what program is to be run on the remote machine to start-up rsync. Often used when rsync is not in the default remote-shell's path (e.g. --rsync-path=/usr/local/bin/rsync).

こんな感じでエラーが出なくなりました。

$ rsync -e ssh --rsync-path=/path/to/rsync -av foo_host:/path/to/src/ /path/to/dst receiving incremental file list ./ sent 27 bytes received 41 bytes 136.00 bytes/sec

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12101
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン