2011-08-31 48 views
37

我試圖在Windows 7上使用rsync。我安裝了cwRsync並嘗試連接到Ubuntu 9.04。爲什麼在Windows上意外關閉此rsync連接?

$ rsync -azC --force --more-options ./ [email protected]:/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] 
+2

這個錯誤似乎是一個捕獲所有。如果您爲文件指定目標文件名,而不僅僅指定目錄,也會出現這種情況。 – Nick

+4

這可能遲了,但爲後代增添了一些。文件同步到的文件系統已達到100%的磁盤空間。 – bram

回答

3

我得到的解決方案。我已經使用了cygwin,這是Windows的rsync命令只能在Windows shell中工作的問題,並且可以在Windows PowerShell中工作。

有幾次它發生了兩個linux盒子之間的相同錯誤。而似乎是由rsync的

+0

如果目標服務器上的rsync不存在,也會發生這種情況。 –

4

此錯誤消息可能意味着你要麼輸入了錯誤的服務器名稱或忘記在服務器啓動SSH服務器。確保在端口22上的服務器上運行ssh服務器,並且它沒有受到防火牆限制。你可以用ssh [email protected]來測試。

+0

nop服務器工作正常,名稱正確scp命令和ssh命令也可以正常工作 – rkmax

+0

@rkmax更新了其他可能原因的答案,但如果ssh工作,那些也不適用。你可以嘗試一個沒有任何不必要參數的rsync,然後上傳一個數據包轉儲,例如用[wireshark](http://wireshark.org/)生成的數據包轉儲? – phihag

+0

是服務器在22端口上偵聽,只用from_dir和user @ host:to_dir運行命令並獲得相同的消息 – rkmax

12

的不兼容版本的rsync變化版本時,我看到了這一點。在舊版本,它的工作說:

rsync -e 'ssh ...

rsync.exessh.exe在同一個目錄下。

有了新版本,我必須指定路徑:

rsync -e './ssh ...

和它的工作。

+2

+1除了一個更好的示例路徑是rsync -e/usr/bin/ssh .... – maverick

+1

@maverick是的我確定rsync -e/usr/bin/ssh.exe會更好。 -_- –

6

我有這個問題,但只有當我試圖從Linux(RH)服務器在Solaris服務器與rsync。我的修復是確保rsync在兩個盒子上具有相同的路徑,並且rsync的所有權是相同的。

在Linux中,rsync的路徑是在/ usr/bin中,在Solaris系統是在/ usr/local/bin目錄。因此,在Solaris機器上,我執行了ls -s/usr/local/bin/rsync/usr/bin/rsync。

我仍然有同樣的問題,並注意到所有權的差異。在linux上,它是root:root,在solaris上是bin:bin。將solaris更改爲root:root修復它。

+3

如果遠程rsync二進制文件位於異常位置,則可以指定它:rsync -azC --rsync-path =/usr/local/bin/rsync ...例如。 –

5

我在2個Linux框之間出現了這個錯誤。通過在遠程盒子和本地盒子上安裝RSYNC很容易解決。

+0

是的,如果rsync可以更詳細地描述錯誤,那就太好了。我收到了這個問題的所有其他「答案」所產生的完全相同的錯誤消息,但是我的另一個基本問題是:在Linux機器上目標目錄的文件權限和所有權。在驗證我沒有發現本答覆中提到的任何其他問題(rsync路徑,bin版本不匹配,分區權限,ssh路徑等)之後才發現。 – hobs

+0

謝謝; D這解決了我的問題......我接受的答案在這裏; D –

21

對我來說,訣竅是我ssh衝突。

我在我的Windows路徑上安裝了Git,其中包括ssh。 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 
+1

也有問題與github的git客戶端的shell ssh版本。做一個'apt-cyg安裝openssh'爲我解決了這個問題。如果不確定是否有這個問題,請嘗試從cygwin提示符中選擇「哪個ssh」。 –

+0

或'你從哪裏ssh' Windows CLI – Petah

+0

嗨,我很抱歉,它看起來像我有同樣的問題,但我對計算機環境的不瞭解並不能幫助我解決這個問題:http://stackoverflow.com/questions/32756423/rule-conflict-between-multiple-ssh感謝 – leonsaysHi

相關問題