Không thể rsync sang âm lượng khác với Git Bash


10

Tôi sử dụng git bash trên máy windows: phiên bản 2.7.2 (phiên bản 32 bit) của Git cho Windows được xây dựng trên 2016 / 02-23 có sẵn từ https://git-scm.com .

Trong bash tôi có thể sao chép một thư mục từ /c/để /e/(một ổ USB). Tuy nhiên, tôi gặp lỗi khi tôi cố gắng sử dụng rsync. Tôi đã thử thêm cygdrivevào tên thư mục, nhưng không được. Cũng đã thử thêm -e(chỉ để xem điều gì sẽ xảy ra) cũng không hoạt động.

Tôi đề cập rằng lệnh sao chép hoạt động bởi vì thật lạ khi tôi có thể thấy ổ đĩa một chiều, nhưng không thấy nó theo một cách khác.

Bản sao thành công: nhập mô tả hình ảnh ở đây

Không thành công rsync: nhập mô tả hình ảnh ở đây

Cảm ơn bạn, và xin vui lòng bình luận nếu bạn downvote để giúp tôi làm cho câu hỏi tốt hơn.

Bối cảnh và nghiên cứu bổ sung:

Lỗi 255

Tại một số điểm tôi tin rằng tôi đã nhận được cùng một lỗi chính xác (255), dẫn tôi đến bài đăng này. Tuy nhiên, giải pháp ở đây có liên quan đến cygwin, không phải git bash. /programming/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexplained-error-code-255

Vagrant và rsync

Có rất nhiều sự thất vọng tốt về các cơ chế rsync, đặc biệt là từ mitchellh. Tuy nhiên, tôi không chắc những thành phần nào mà chúng tham chiếu có trong phần cài đặt của tôi, hoặc chắc chắn làm thế nào để biết. Tôi đã hỏi một câu hỏi riêng trên trang web này về vấn đề đó. nguồn: https://github.com/mitchellh/vagrant/issues/3236

Liệt kê các ổ đĩa trong môi trường Linux mô phỏng

nguồn: http://mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html Khi cat /etc/fstabtôi nhận được những điều sau:

$ cat /etc/fstab
# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table

# DO NOT REMOVE NEXT LINE. It remove cygdrive prefix from path
none / cygdrive binary,posix=0,noacl,user 0 0
none /tmp usertemp binary,posix=0,noacl 0 0

Mà tôi nghĩ chỉ ra rằng có một khối lượng được đặt tên cygdrive, tuy nhiên tôi chưa tìm thấy bất kỳ lệnh nào truy cập thành công tên đó.

Câu hỏi trùng lặp có thể có:

@kenorb đề xuất rằng câu hỏi này là một bản sao của Tại sao cwRsync không hoạt động trên Windows? .

Tôi không nhớ đã thấy bài đăng này ngày hôm qua, nhưng bài này trông giống bài của tôi nhất. Tôi vẫn nghĩ nó khác bởi vì câu hỏi này đã được đăng vào năm 2011 và phiên bản rsyncnày là từ năm 2016. Phiên bản trước tôi đang sử dụng vào sáng hôm qua (được cài đặt vào năm 2015) đã đưa ra một lỗi khác và nhắc tôi nâng cấp phiên bản git của mình / git bash.

Nếu câu hỏi đó là một bản sao, thì hiện tại không có câu trả lời nào được chấp nhận và câu trả lời hàng đầu không phù hợp với tôi.

Nói chung, tất cả các nghiên cứu này khiến tôi tin rằng đã có một số vấn đề với rsynccác cổng Windows và đây chỉ là vấn đề mới nhất.

Tôi nghĩ vấn đề có thể được giải quyết bằng cách tôi chỉ định ổ đĩa khác nhau ... nhưng tôi không biết cái gì sẽ hoạt động. Tôi đã thử sử dụng tên ổ đĩa, ký tự ổ đĩa, cú pháp dấu gạch chéo ngược của cửa sổ. Rõ ràng là nó không hoạt động, và cuối cùng tôi chỉ đoán.

rsync trong msysgit

Vào ngày 18/11/11, Werner BEROUX cho biết

Có thể thoát để truyền "/ c / Thư mục" làm đối số cho ứng dụng không? Git biến đổi nó thành "C: \ Thư mục" theo mặc định và dường như tôi không thể tránh được nó ngay cả khi sử dụng các phương thức thoát thông thường. https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g

Tôi không chắc điều này có liên quan hay không, tôi nghĩ họ đang cố sử dụng rsync bên trong lệnh git, nhưng thật thú vị khi họ gặp vấn đề với tên đường dẫn. Tôi tự hỏi nếu những lỗi gây ra bởi đường dẫn được dịch để bao gồm một :?

Mã lỗi 12 và 255 (Chỉnh sửa vào ngày 21 tháng 3 năm 2016)

Vì một người khác (@davidpostill) cũng nói rằng đây là một bản sao, tôi nghĩ rằng tôi sẽ thử lại câu trả lời / nhận xét trong câu hỏi khác .

Các câu trả lời và bình luận hàng đầu từ câu hỏi khác vẫn không hiệu quả với tôi, điều này dẫn tôi trở lại kết luận rằng đây là một vấn đề khác.

Dưới đây là kết quả của việc thử rsync từ ổ ngón tay cái, như được đề xuất trong bình luận cuối cùng của câu trả lời được bình chọn hàng đầu cho câu hỏi khác :

Đầu tiên tôi đã thử sử dụng /c/, đó là cách để tham chiếu các ổ đĩa trong các lệnh khác trong Bash cho Windows.

user@computer MINGW32 /e
$ rsync -trd /c/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]

Tôi gặp lỗi tương tự với /cygwintiền tố:

user@computer MINGW32 /e
$ rsync -trd /cygwin/c/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]

Đã thử nhiều loại bổ sung khác nhau c:, nhưng như đã được chỉ ra trong quá khứ, dấu hai chấm cho rsyncrằng đó là một kết nối từ xa, và do đó không thành công với lỗi 255.

user@computer MINGW32 /e
$ rsync -trd /c:/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]

Bạn có thể ghi lại lỗi của bạn thành văn bản không? Xem: Không khuyến khích ảnh chụp màn hình mã và / hoặc lỗi
kenorb

Bạn đã thử rsync -trd c:/examp/ e:/chưa
am

@ams có, cùng một lỗi
genorama

Việc xây dựng lại mysys2có thể giúp ích, nhưng tôi ngần ngại làm theo các bước này. Tôi có thể sống mà không có rsync, nhưng tôi không đủ khả năng để phá vỡ git github.com/git-for-windows/git/wiki/Bu kiếm
msys2

Bạn đã thử WSL chưa . Nó cho phép gắn ổ đĩa ngón tay cái và rsyncing.
Peter Berbec

Câu trả lời:


0

Hai năm sau, tôi đã tìm thấy một câu trả lời dường như hoạt động trên máy tính mới nhất của tôi (Windows 10, 64 bit).

  1. Cài đặt git bash cho Windows
  2. Tải xuống rsynctừ futurware.at *
  3. Trích xuất đến bất cứ đâu, tôi chọn C:\rsync-3.1.2-2-x86_64.pkg
  4. Thêm thư mục bin vào đầu đường dẫn hệ thống của bạn

* Tôi không biết ai đứng sau futurware.at, tôi muốn liên kết với một nguồn chính hơn.

Tôi cũng đã đăng câu trả lời ở đây để trả lời cho một câu hỏi tổng quát hơn, vì tôi không thể nhớ câu hỏi này ở đâu vào lúc đó.


0

Từ http://repo.msys2.org/msys/x86_64/ tải xuống các gói sau:

http://repo.msys2.org/msys/x86_64/rsync-3.1.3-1-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/msys2-runtime-3.0.7-6-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/zlib-1.2.8-3-x86_64.pkg.tar.xz
http://repo.msys2.org/msys/x86_64/libiconv-1.16-1-x86_64.pkg.tar.xz

Giải nén mỗi tar -xf, và sau đó từ usr/binbản sao rsync.exe, msys-2.0.dll, msys-z.dllmsys-iconv-2.dllvào thư mục từ nơi mà bạn muốn chạy rsync. Kiểm tra với rsync.exe -h.

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.