Windows rsync hỗ trợ tên tệp dài, hoặc một sự thay thế tốt?


13

Tôi hiện rsync trên máy chủ Linux để sao chép mọi thứ từ Windows sang hộp Linux của tôi. Nhưng tôi không thể sao chép các tập tin với tên dài.

Tôi đã thử DeltaCopy , cwrsynccygwin . Từ những gì tôi đã tìm thấy, tất cả các công cụ này đều từ chối sao chép tệp khi độ dài của tệp trở nên dài, dường như khoảng 255 ký tự này.

Vấn đề này được giải quyết trên các diễn đàn cwrsync tại đây và nó được cho là có thể được khắc phục trong tương lai bất cứ khi nào cygwin 1.7 xuất hiện và UTF8 được hỗ trợ. Thậm chí có một bản dựng thử nghiệm ở đây .

Tôi không đặc biệt thoải mái khi sử dụng bản dựng thử nghiệm trên một hệ thống sản xuất. Tôi hy vọng ai đó biết về một tùy chọn rsync khác.

Thay thế cho rsync, bạn có biết một công cụ khác mà tôi có thể sao chép cấu trúc thư mục trên Linux từ máy chủ windows không gặp vấn đề với các tệp dài hoặc có tên khác thường không? Điều quan trọng là tôi cần một công cụ có thể dễ dàng hoạt động trên một đường hầm SSH. Một số hệ thống nằm ngoài tường lửa và tôi tin rằng SSH là đường hầm tôi sẽ được phép sử dụng.


FYI cwrsync đã phát hành bản cập nhật dựa trên cygwin 1.7 hỗ trợ tên tệp dài! itefix.no/i2/node/12070
Zoredache

Câu trả lời:


6

Tôi có thể thiếu điểm nhưng bạn đã cân nhắc sử dụng Robocopy trên Windows. Nó tương tự như RSync tuy nhiên bạn không thể lên lịch trực tiếp từ ứng dụng.

Điều này có thể được khắc phục bằng cách viết một tệp bó cho bản sao và sau đó tạo Tác vụ theo lịch. Robocopy là miễn phí và cực kỳ mạnh mẽ. Tôi thường sử dụng nó để sao chép các tệp giữa Linux và Windows bằng Samba và mạng và khả năng tiếp tục của Robocopy thực sự mạnh mẽ.


robocopy là một tùy chọn tôi đã xem xét, nhưng nó hoạt động sai hướng (đẩy từ win sang lin), tôi muốn kéo từ windows trên Linux. Tôi nghi ngờ rằng tôi có thể phải đi theo hướng này nếu tôi không thể tìm thấy bất cứ điều gì tốt hơn mặc dù.
Zoredache

5

Aha! Bạn có thể sử dụng trạm biến áp với rsync.

Nếu bạn có cây thư mục sâu d: \ Very \ long \ file \ n \ ame \ etc \ etc thì thử nghiệm cho thấy rằng bạn có thể thay thế X: thành d: \ Very \ long \ file \ name \ etc và sau đó rsync đến và từ / cygdrive / x / bất cứ điều gì. Điều này hoạt động cả ở cuối máy khách và ở cuối máy chủ.

Bây giờ trong khi bạn có thể sử dụng các trạm biến áp chiến lược để giảm thời lượng của tên tệp mà tôi không biết nếu điều này cho phép bạn bỏ qua giới hạn 260 ký tự. Nó cũng có thể không được thuận tiện. Đáng để thử mặc dù.

John Rennie.

---- 8 <----

Xem http://www.ratsauce.co.uk/notablog/LongFilenames.asp để biết những lùm xùm của tôi về tên tập tin dài.

Tôi không biết cách nào để có được tiền tố \? \ Cho Cygwin và rõ ràng phiên bản hiện tại của Cygwin không sử dụng tiền tố bên trong. Có lẽ họ đang giải quyết vấn đề này trong phiên bản mới và đó là lý do tại sao nó sẽ hỗ trợ các tên dài hơn 260 ký tự. Tôi sử dụng rsync Cygwin ở khắp mọi nơi vì vậy giống như bạn, tôi háo hức chờ đợi phiên bản.

Có một số vấn đề khác với rsync Cygwin. Nó tạo ra một mớ hỗn độn của ACL trừ khi bạn chỉ định cygwin = nontsec và nó có xu hướng treo trên các thư mục rất lớn. Trong danh sách những việc cần làm trước khi chết là viết phiên bản rsync gốc của Windows mà không gặp phải những vấn đề này. Tôi tin rằng điều này đã được thực hiện, nhưng chỉ là phiên bản thương mại không phải là miền công cộng.

JR


Rsync dường như bị treo trên các thư mục lớn vì nó phải đọc tất cả các tệp trước tiên. Vấn đề là các cửa sổ đọc tất cả các tệp trước, sau đó rsync khởi động. Có thể mất vài phút để quét thư mục tùy thuộc vào số lượng tệp.
Ryaner

Đây không còn là trường hợp với rsync 3.0. Bây giờ nó sẽ gửi một danh sách tập tin gia tăng để nó có thể bắt đầu gửi các tập tin sớm hơn.
James Sneeringer

2

Tôi sẽ đề nghị bạn thử Unison http://www.cis.upenn.edu/~bcpierce/unison/

Đây là một thay thế rất thú vị cho rsync vì nó cũng có thể cung cấp đồng bộ hóa hai chiều (điều mà rsync không thể thực hiện được). Tôi đã sử dụng thành công trên 2 máy ảo và rất hài lòng với kết quả.

Nhưng liên quan đến tên tệp dài, tôi không biết nó có hoạt động như bạn muốn không.

Từ trang web chính thức:

Unison là một công cụ đồng bộ hóa tệp cho Unix và Windows. Nó cho phép hai bản sao của một tập hợp các tệp và thư mục được lưu trữ trên các máy chủ khác nhau (hoặc các đĩa khác nhau trên cùng một máy chủ), được sửa đổi riêng lẻ, sau đó được cập nhật bằng cách truyền các thay đổi trong mỗi bản sao này sang bản sao khác.


Bạn đã sử dụng nó với các đường dẫn dài hơn 250 ký tự? Dường như cách duy nhất để có được nó trên windows là thông qua cygwin, mà tôi tin rằng nó sẽ có cùng một vấn đề tôi gặp phải với rsync của Cygwin.
Zoredache

Tôi chưa thử nghiệm đường dẫn dài, nhưng các tệp nhị phân Unison cho Windows được xây dựng bằng cygwin.dll (nó được đóng gói với các nhị phân, không cần cài đặt cygwin), do đó nó có thể hoạt động chính xác. Hãy dùng thử :)
Olivier Jaquemet

2

Chỉ cần lưu ý rằng tôi gặp phải vấn đề tương tự (giới hạn của tiền Cygwin trước 1.7) và tìm thấy bản dựng cwrsync hoạt động với cygwin 1.7 tại đây:

http://www.doering-thomas.de/page.php?seite=1&sub=6&lang=en#rsync

(Liên kết gốc được tìm thấy từ các diễn đàn cwrsync)

Không chính xác là một bản dựng chính thức, nhưng nó đã giải quyết các vấn đề về bộ ký tự của tôi :)


1

http://lists.samba.org/archive/rsync/2009-March/022955.html

http://www.okisoft.co.jp/esc/utf8-cygwin/ Có lớp UTF8, có tác dụng phụ là tăng kích thước đường dẫn có thể. Theo tác giả của nó, nếu bạn muốn sử dụng nhiều ký tự hơn, bạn có thể tăng hằng số trong bản vá. Điều đó dường như thậm chí còn hackish hơn.

Có lẽ không phải là đặt cược tốt nhất của bạn cho đồng bộ hóa từ xa, nhưng là một rsync windows tuyên bố sẽ hỗ trợ tên tệp dài hơn.


Bài đăng này làm tôi lo lắng một chút ( cygwin.com/ml/cygwin/2006-05/msg00068.html ) - "Về cơ bản, có một bản vá 930 dòng, hầu hết là bản mới. FWICS, nó có thể không bao gồm tất cả các nơi có Unicode có thể cần chuyển đổi (đặc biệt là gửi Unicode qua ống văn bản sẽ rất có thể thất bại một cách ngoạn mục) "
Zoredache

0

Vì vậy, nếu các công cụ xấu trên Windows thì có cách nào để sử dụng công cụ Linux không?

Với ssh - sshfs ?

Không có ssh - sử dụng VPN và gắn kết như SMB?

Dù bằng cách nào cũng sẽ cho phép bạn sử dụng máy khách rsync Linux có khả năng hơn đối với hệ thống tệp. Tôi đã không làm điều này với 10GB dữ liệu nên YMMV. :)


Tôi đang cố gắng kéo các tệp TỪ các cửa sổ vào hộp Linux của mình. Thêm vào đó, tôi thực sự không muốn xây dựng một kho lưu trữ vì tôi đang nói nhiều dữ liệu 10GB + mà tôi muốn đồng bộ hóa hàng tuần. Nếu tôi xây dựng một kho lưu trữ, tôi sẽ không nhận được lợi ích của các cập nhật gia tăng.
Zoredache

OK, câu trả lời sửa đổi.
Cawflands

0

Điều này sẽ không tạo cấu trúc tệp lớn, nhưng đối với các tập dữ liệu tương đối nhỏ có tên dài, bạn có thể xem xét bằng cách sử dụng một cái gì đó như 7-Zip để tạo một kho lưu trữ mà rsync có thể chuyển. Bạn nói rằng bạn cần phải kéo dữ liệu từ máy chủ Windows sang máy chủ Linux. Nếu bạn có quyền truy cập shell, lưu trữ dữ liệu bạn cần trong một container (7-zip) chuyển container và mở rộng nó khi đến máy chủ. Điều này đẩy vấn đề tên tệp dài lên trình lưu trữ, mà tôi tin rằng có các công cụ hỗ trợ và phi Cygwin tốt hơn.


0

Để không mất tính di động, tôi khuyên bạn nên ở lại với rsync và cố gắng giải quyết giới hạn 255. Giới hạn này không còn trong Windows nữa và nằm trong mã RSYNC - trên thực tế, giới hạn trên Windows là khoảng năm 2048 (nếu tôi nhớ rõ).

Tôi khá chắc chắn rằng không có cổng rsync nào khác ngoài các cổng được chỉ định bởi bạn và tôi khuyên bạn nên sử dụng phiên bản thử nghiệm và báo cáo bất kỳ lỗi nào bạn có thể tìm thấy.

Nếu bạn không phiền khi sử dụng FTP, bạn có thể dùng thử LFTP - nó có tính năng phản chiếu rất tốt nhưng nó không so sánh với rsync khi sao lưu / đồng bộ hóa.


0

Tôi đã hack cùng một tập lệnh có thể tạm thời đổi tên các tệp hoặc thư mục có tên ngắn hơn để rsync (và các chương trình khác) có thể tiếp tục. Bạn có thể sử dụng điều này như một phần của chuỗi công cụ mà bạn đang sử dụng để sao chép các tệp từ Linux sang Windows (rsync hoặc cách khác). Tôi không biết ý của bạn là "không bình thường", vì vậy có lẽ điều này chỉ giải quyết một phần yêu cầu của bạn. Xin vui lòng cho tôi biết nếu nó hữu ích cho bạn.

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.