最近、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 を使用して検証したものとまったく同じコマンドを実行しました。
私が試したこと:
- 別のサーバーから同様のコマンドを実行したところ、同じエラー メッセージが表示されました。
- 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 を実行したところ、まったく問題なく動作しました。