rsync エラー: io.c(600) の rsync プロトコル データ ストリーム (コード 12) でエラーが発生しました

rsync エラー: io.c(600) の rsync プロトコル データ ストリーム (コード 12) でエラーが発生しました

最近、ssh経由でrsyncが出来なくなりました。毎回同じエラーが発生します

bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]

私は走っています

sudo rsync -av /var/www/html/somedir/ [email protected]:Users/myuser/Desktop/ec2backup

この投稿では、ユーザー名、IP、ディレクトリが変更されていることに注意してください。

過去に、bash_history を使用して検証したものとまったく同じコマンドを実行しました。

私が試したこと:

  1. 別のサーバーから同様のコマンドを実行したところ、同じエラー メッセージが表示されました。
  2. rsync をローカルでテストしました (ローカル ディレクトリからローカル ディレクトリへ)。完璧に動作しました。

唯一変わったのは、最近 Virtualbox と Vagrant をインストールしたことです。ローカル マシンの認証やポートなどを間違えた可能性はありますか?

どのような助けでも大歓迎です。

答え1

999.999.99.9 に rsync がインストールされていません

答え2

私の問題は、Win10 2004 ビルド 19041.685 にプリインストールされていた SSH_for_Windows_7.7p1、LibreSSL 2.6.5 と組み合わせて cwrsync_6.2.1_x64 を使用していたことにありました。

rsync コマンドでは、特定の rsync ビルドに付属する ssh.exe を指定する必要があります。例:

rsync -avHz -e "path_to\cwrsync_6.2.1_x64_free\bin\ssh.exe" --partial ...

答え3

ターゲット ディレクトリが事前に存在していなかったため、このエラーが発生しました。ソース データ ファイル: /a/b/c/d/data の場合、rsync -av -e ssh /a/b/c/d/ hostname:/a/b/c/d には、ターゲット ディレクトリ: hostname:/a/b/c が事前に存在している必要があります。

最後の手段としてマニュアルページを読んでみると、これが意図された動作であることがわかりました。

答え4

cygwin を使用して、「which rynsc」を実行したところ、cygwin セットアップ プログラムによって提供された rsync が返されました。以前に Cygwin セットアップから rsync をインストールしていました。ただし、Cygwin から「which ssh」を実行したとき、Windows パスの ssh を指していました。そこで、Cygwin を終了し、cygwin セットアップ プログラムを実行して、cygwin から ssh をインストールしました。その後、同じ 2 つのコマンド (which rsync と which ssh) を再度実行したところ、両方のバイナリが cygwin バイナリを指していました。その後、cygwin から rsync を実行したところ、まったく問題なく動作しました。

関連情報