rsync trên ssh lỗi trong luồng dữ liệu giao thức (mã 12). ssh hoạt động


50

Tôi đã thử:

rsync -v -v -e 'ssh -p YY' ./testfile me@XXXXX:/home

Thông báo lỗi

opening connection using: ssh -p YY -l me 146.6.84.206 rsync ->-server -vvve.s . /home 
[sender] make_file(testfile,*,0)
send_file_list done
send_files starting
server_recv(2) starting pid=17537
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600)[sender=3.0.6]
_exit_cleanup(code=12, file=io.c, line=600): about to call exit(12)

Điều này hoạt động tốt:

ssh -p YY me@XXXXX

Điều này cho tôi thấy vấn đề không phải sshdlà không chạy và cổng YY không được tường lửa. Tôi đã kiểm tra nào.

Những vấn đề khác có thể có?

EDIT: Vấn đề dường như là "tự giải quyết". Tôi không thể sao chép vào ngày hôm sau. Tôi khởi động máy tính cục bộ của tôi lên. Có lẽ đáng chú ý là tôi đã có một địa chỉ IP khác so với lần trước. Và bây giờ rsync hoạt động kỳ diệu. Tôi đánh giá cao những dự đoán về những gì nó có thể xảy ra trong ánh sáng của nó sẽ biến mất.


1
Bạn có quyền viết tại /homemáy chủ từ xa không?
souravc

Chắc chắn rồi. Khi tôi ssh tôi có thể bắt đầu làm mèo và chạm, v.v. Về ý nghĩ thứ hai tôi không chắc ý của bạn là gì từ xa. Tôi đang nói về việc gọi rsync trong khi trên một máy chủ từ xa để di chuyển mọi thứ cục bộ. Tôi nên có quyền ghi trong cả thư mục gốc và thư mục đích
user3391229

Tôi đã gặp lỗi này (trong khi cố gắng đồng bộ hóa blog Pelican của tôi với máy chủ của tôi) thỉnh thoảng. Tôi thấy rằng nếu tôi ssh vào máy chủ, sau đó thử lại rsync, nó hoạt động tốt. Không chắc chắn những gì xảy ra ở giữa.
Anthony C

Không có đủ dung lượng trên máy chủ từ xa cũng có thể gây ra lỗi này.
Makan

Câu trả lời:


84

Bạn cũng có thể gặp lỗi này nếu bạn chỉ định một đường dẫn từ xa không tồn tại.

Tôi gặp lỗi này trên OS X:

$ rsync -avz public/ static:apps/myapp.com
building file list ... done
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/io.c(453) [sender=2.6.9]

Biến nó chỉ đơn giản là một vấn đề sai lầm của con đường đích. Các appsdir không tồn tại. Khi tôi thay đổi điều đó thành static:sites/myapp.comthay vào đó ( sitesthư mục đã tồn tại), lỗi đã biến mất.

Sẽ ổn nếu thư mục cuối cùng trong đường dẫn không tồn tại (tôi có thể làm được static:sites/mynewapp.com) nhưng nó xuất hiện bất kỳ thư mục nào trước đó phải tồn tại.


Tôi gần như đã quên hỏi câu hỏi này. Tôi đã không có vấn đề tương tự kể từ đó. Tôi nghi ngờ rằng đây là những gì đã xảy ra.
dùng3391229

18
Cảm ơn bạn! Đó phải là thông báo lỗi sai nhất bao giờ hết.
Frans

1
Ngoài ra, nếu bạn không có rsync thực thi, nó sẽ hiển thị lỗi tương tự. Hầu như tôi đã thấy trong ansibles
mannoj

Vì một số lý do, tôi nghĩ rsync sẽ tạo thư mục nếu nó không tồn tại ... Tôi đoán là không - bạn cần tạo thư mục đích trước. Nếu đường dẫn đích kết thúc bằng dấu gạch chéo, thư mục phải tồn tại. Nếu nó không kết thúc bằng dấu gạch chéo, thì một cấp trên nó phải tồn tại.
squarecandy

1
Vấn đề của tôi là: đĩa từ xa đã đầy.
Zhang Buzz

15

Tôi đã gặp lỗi này khi rsynckhông được cài đặt trên máy chủ đích. Thông báo lỗi trong trường hợp của tôi cũng cho biết rsync: command not found. Một đơn giản

sudo apt-get install rsync

trên máy chủ đích đã giải quyết vấn đề.


Tôi đã gặp lỗi mã 12 và không có thông báo nào về lệnh rsync không được tìm thấy. Sau khi cài đặt, lỗi đã biến mất.
Hbar

3

Tập lệnh đăng nhập của bạn ở đầu từ xa có tạo ra rác trên thiết bị xuất chuẩn không? Kiểm tra cái này với

ssh -p YY me@XXXXX /bin/true > out.txt

Nếu out.txtchứa dữ liệu, xác định những điều khoản vi phạm trong của bạn .profilehoặc .bashrcvà bọc chúng trong

if [ ! -t 1 ]; then
  echo garbage
fi

Nada trong out.txt. Nhưng tôi cũng đã thử rằng chiều nay trong một khoảng thời gian mà tôi không thể tái tạo vấn đề.
dùng3391229

Tôi đã thử điều này tại một thời điểm khi tôi có thể tạo ra vấn đề và tôi cũng không nhận được gì trong out.txt.
joshreesjones

1

Bạn có thể cần phải đặt trong đường dẫn đầy đủ đến nhị phân ssh, tức là

rsync -v -v -e '/usr/bin/ssh -p YY' ./testfile me@XXXXX:/home

Mặc dù có những nguyên nhân có thể khác.


Vâng tôi đọc điều đó có thể xảy ra khi bạn có nhiều phiên bản ssh mà bạn có thể tham khảo. Tuy nhiên, thực tế là nó đã biến mất vào ngày hôm sau khiến điều này không thể xảy ra
dùng3391229

0

Lỗi này cũng có thể xảy ra nếu đường dẫn đến rsync tại hệ thống từ xa không phải là hệ thống cục bộ giả định là như vậy. Bạn có thể thấy những gì đang xảy ra bằng cách chỉ định -vv (hoặc thậm chí nhiều hơn so với). Nếu đây là sự cố, bạn có thể chỉ định đường dẫn từ xa đến rsync với tùy chọn --rsync-path.


0

Tôi đã thấy lỗi này:

rsync -e 'ssh -v'

debug1: Exit status 11

...

rsync error: error in rsync protocol data stream (code 12) at /BuildRoot
/Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/io.c(453)
[sender=2.6.9]

Tôi đã có thể ssh vào máy chủ từ xa và thấy rằng nó đã hết dung lượng đĩa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.