64 ビット Windows と 64 ビット Linux 間でファイルを転送しようとすると、cygwin rsync でエラーが発生します。両方のマシンに rsync 3.0.7 がインストールされています。ssh (デーモンは使用していません) を使用して rsync を実行しています。リモート ボックスへの接続は確立されているようですが、認証後、ファイル転送前に rsync が停止します。
この問題の原因は何でしょうか?
C:\>rsync user@host:~/file newfile
Password:
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=
3.0.7]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/packagi
ng/rsync-3.0.6-1/src/rsync-3.0.6/io.c(600) [receiver=3.0.6]
答え1
は、リモート パーティとの接続が切断されたことを意味します。理由error 12
はrsync
環境によって異なります。
rsync をデーモンとして実行している場合は、ログ ファイルで手がかりを確認してください。リモート システムのディスクに十分な空き領域がありますか?パラメータrsync
を指定して実行すると-v
、何か役立つ情報が得られるかもしれません。
答え2
結局、問題は Windows の Git インストール (mysysgit) にあることがわかりました。Windows の Git には独自の ssh.exe が付属しており、そのパスは cygwin パスの前にあったため、rsync はデフォルトで git の ssh に設定されていました。解決策は、env PATH で git bin と cygwin の bin ディレクトリを交換するだけでした。