web-dev-qa-db-ja.com

このrsync接続がWindowsで予期せず閉じられるのはなぜですか?

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]
37
rkmax

私は解決策を得ました。私はcygwinを使用していますが、これはWindowsのrsyncコマンドがWindowsシェルでのみ動作し、Windows PowerShellで動作する問題です。

数回、2つのLinuxボックス間で同じエラーが発生しました。互換性のないバージョンのrsyncによるものと思われます

4
rkmax

私にとってのコツは、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
22
Petah

これは、rsyncバージョンを変更するときに見ました。古いバージョンでは、次のように機能していました。

rsync -e 'ssh ...

rsync.exeおよびssh.exeは同じディレクトリにありました。

新しいバージョンでは、パスを指定する必要がありました。

rsync -e './ssh ...

そしてそれは働いた。

13
Seth Wegner

この問題が発生しましたが、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に変更すると修正されました。

6
Mark

2台のLinuxボックス間でこのエラーが発生しました。リモートボックスとローカルボックスにRSYNCをインストールすることで簡単に解決できます。

5
davidgo

このエラーメッセージは、おそらくサーバー名を誤って入力したか、serverでsshサーバーを起動するのを忘れたことを意味します。 sshサーバーがポート22のサーバーで実行されており、ファイアウォールで保護されていないことを絶対に確認してください。 ssh user@serverでテストできます。

4
phihag