2011-08-31 30 views
37

Tôi đang cố gắng sử dụng rsync trên Windows 7. Tôi đã cài đặt cwRsync và cố gắng kết nối với Ubuntu 9,04.Tại sao kết nối rsync này bất ngờ bị đóng trên Windows?

$ 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

Lỗi này có vẻ là bắt tất cả. Nó cũng xảy ra nếu bạn chỉ định tên tệp đích cho tệp, thay vì chỉ thư mục. – Nick

+4

Điều này có thể là muộn, nhưng thêm cho hậu thế.Hệ thống tệp nơi các tệp được đồng bộ hóa đã đạt tới 100% dung lượng đĩa. – bram

Trả lời

3

tôi nhận được giải pháp. Tôi đã sử dụng Cygwin và đây là vấn đề lệnh rsync cho Windows làm việc chỉ trong cửa sổ vỏ và hoạt động trong các cửa sổ PowerShell.

Một vài lần nó xảy ra cùng một lỗi giữa hai hộp linux. và có vẻ là các phiên bản không tương thích của rsync

+0

Điều này cũng xảy ra nếu rsync trên máy chủ đích không tồn tại. –

4

Thông báo lỗi này có thể có nghĩa rằng bạn có gõ sai tên máy chủ hoặc quên để bắt đầu một máy chủ ssh tại máy chủ. Hãy chắc chắn rằng một máy chủ ssh đang chạy trên máy chủ tại cổng 22 và nó không được tường lửa. Bạn có thể kiểm tra điều đó với ssh [email protected].

+0

nop máy chủ hoạt động tốt và tên là chính xác lệnh scp và lệnh ssh hoạt động tốt quá – rkmax

+0

@rkmax Cập nhật câu trả lời với các nguyên nhân có thể khác, nhưng nếu ssh hoạt động, chúng cũng không áp dụng. Bạn có thể thử rsync không có bất kỳ tham số không cần thiết nào và sau đó tải lên một gói dữ liệu gói, ví dụ được tạo với [wireshark] (http://wireshark.org/)? – phihag

+0

có máy chủ đang nghe trên cổng 22 và chạy lệnh chỉ với from_dir và người dùng @ host: to_dir và nhận được cùng một thông báo – rkmax

12

Tôi thấy điều này khi thay đổi các phiên bản rsync. Trong phiên bản cũ, nó làm việc để nói:

rsync -e 'ssh ...

khi rsync.exessh.exe là trong cùng thư mục.

Với phiên bản mới, tôi phải chỉ định đường dẫn:

rsync -e './ssh ...

và nó làm việc.

+2

+1 Ngoại trừ đường dẫn mẫu tốt hơn sẽ là rsync -e/usr/bin/ssh .... – maverick

+1

@maverick yeah Tôi chắc chắn 'rsync -e/usr/bin/ssh.exe' sẽ hoạt động tốt hơn nhiều. -_- –

6

Tôi gặp sự cố này, nhưng chỉ khi tôi cố gắng rsync từ máy chủ Linux (RH) đến máy chủ Solaris. Sửa lỗi của tôi là đảm bảo rsync có cùng đường dẫn trên cả hai hộp và quyền sở hữu của rsync giống nhau.

Trên hộp linux, đường dẫn rsync là/usr/bin, trên hộp Solaris là/usr/local/bin. Vì vậy, trên hộp Solaris tôi đã làm ln -s/usr/local/bin/rsync/usr/bin/rsync.

Tôi vẫn gặp sự cố tương tự và nhận thấy sự khác biệt về quyền sở hữu. Trên linux nó đã root: root, trên solaris nó là bin: bin. Thay đổi solaris thành root: root đã sửa nó.

+3

Nếu nhị phân rsync từ xa ở một vị trí bất thường, bạn có thể chỉ định nó: rsync -azC --rsync-path =/usr/local/bin/rsync ... chẳng hạn. –

5

Tôi gặp lỗi này trong khoảng 2 hộp Linux. Dễ dàng giải quyết bằng cách cài đặt RSYNC trên hộp điều khiển từ xa cũng như hộp thoại cục bộ.

+0

Vâng, nó sẽ được tốt đẹp nếu rsync có thể được mô tả thêm về lỗi. Tôi nhận được chính xác thông báo lỗi được tạo ra bởi tất cả các "câu trả lời" khác cho câu hỏi này, nhưng tôi đã cho một vấn đề cơ bản khác ... cho phép tập tin và quyền sở hữu của thư mục đích trên một hộp linux. Đã không khám phá cho đến sau khi xác minh rằng tôi không có bất kỳ vấn đề nào khác được đề cập trong Câu trả lời này (đường dẫn rsync, phiên bản bin không khớp, quyền truy cập bin, đường dẫn ssh, v.v.). – hobs

+0

Cảm ơn, D này đã giải quyết nó cho tôi ... câu trả lời được chấp nhận của tôi ở đây, D –

21

Bí quyết đối với tôi là tôi đã có xung đột ssh.

Tôi đã cài đặt Git trên đường dẫn Windows của mình, bao gồm ssh. cwrsync cũng cài đặt ssh.

Bí quyết là đã làm cho một tập tin batch để thiết lập các đường dẫn chính xác:

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 %* 

Trên Windows bạn có thể gõ where ssh để kiểm tra xem đây là một vấn đề. Bạn sẽ nhận được một cái gì đó như thế này:

where ssh 
C:\Program Files (x86)\Git\bin\ssh.exe 
C:\Program Files\cwRsync\ssh.exe 
+1

Cũng đã có vấn đề với phiên bản ssh shell của github git của khách hàng. Làm một 'apt-cyg install openssh' đã sửa lỗi này cho tôi. Nếu không chắc chắn nếu bạn có vấn đề này hãy thử 'ssh' nào từ dấu nhắc Cygwin. –

+0

Hoặc 'nơi ssh' từ bạn Windows CLI – Petah

+0

Xin chào, tôi xin lỗi, có vẻ như tôi có cùng một vấn đề, nhưng kiến ​​thức kém của tôi về môi trường máy tính không giúp tôi khắc phục vấn đề này: http://stackoverflow.com/câu hỏi/32756423/quy tắc-xung đột-giữa-nhiều-ssh Cảm ơn – leonsaysHi

Các vấn đề liên quan