Windows 7でrsync
を使用しようとしています。cwRsyncをインストールし、Ubuntu 9.04に接続しようとしました。
$ rsync -azC --force --more-options ./ user@server:/my/path/
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [receiver=3.0.5]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(610) [sender=3.0.8]
私は解決策を得ました。私はcygwinを使用していますが、これはWindowsのrsyncコマンドがWindowsシェルでのみ動作し、Windows PowerShellで動作する問題です。
数回、2つのLinuxボックス間で同じエラーが発生しました。互換性のないバージョンのrsyncによるものと思われます
私にとってのコツは、ssh
の競合があったことです。
Sshを含むWindowsパスにGitをインストールしています。 cwrsyncはsshもインストールします。
トリックは、正しいパスを設定するバッチファイルを作成することです。
rsync.bat
@echo off
SETLOCAL
SET CWRSYNCHOME=c:\commands\cwrsync
SET HOME=c:\Users\Petah\
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\bin;%PATH%
%~dp0\cwrsync\bin\rsync.exe %*
Windowsでは、where ssh
これが問題かどうかを確認します。次のようなものが得られます。
where ssh
C:\Program Files (x86)\Git\bin\ssh.exe
C:\Program Files\cwRsync\ssh.exe
これは、rsyncバージョンを変更するときに見ました。古いバージョンでは、次のように機能していました。
rsync -e 'ssh ...
rsync.exe
およびssh.exe
は同じディレクトリにありました。
新しいバージョンでは、パスを指定する必要がありました。
rsync -e './ssh ...
そしてそれは働いた。
この問題が発生しましたが、Linux(RH)サーバーからSolarisサーバーにrsyncを試みたときだけです。私の修正は、rsyncが両方のボックスで同じパスを持ち、rsyncの所有権が同じであることを確認することでした。
Linuxボックスでは、rsyncパスは/ usr/binでしたが、Solarisボックスでは/ usr/local/binでした。したがって、Solarisボックスでln -s/usr/local/bin/rsync/usr/bin/rsyncを実行しました。
私はまだ同じ問題を抱えていて、所有権の違いに気付きました。 Linuxではroot:root、solarisではbin:binでした。 solarisをroot:rootに変更すると修正されました。
2台のLinuxボックス間でこのエラーが発生しました。リモートボックスとローカルボックスにRSYNCをインストールすることで簡単に解決できます。
このエラーメッセージは、おそらくサーバー名を誤って入力したか、serverでsshサーバーを起動するのを忘れたことを意味します。 sshサーバーがポート22のサーバーで実行されており、ファイアウォールで保護されていないことを絶対に確認してください。 ssh user@server
でテストできます。