Điểm:0

Cách sao chép thư mục chỉ đọc bằng rsync

lá cờ in

Tôi đang cố sao chép một thư mục bằng rsync

rsync -avP "$src_path" "$target_path"

Trong đó src_path là thư mục chỉ đọc. AFAIK, để sao chép, nguồn không cần phải sửa đổi được trong khi chỉ mục tiêu mới cần có thể ghi được (...duh!).

Nhưng rsync đang gây ra lỗi này cho tôi.

rsync: recv_generator: mkdir $ target_path/sub_dir không thành công: Hệ thống tệp chỉ đọc (30)
*** Bỏ qua bất kỳ nội dung nào từ thư mục bị lỗi này ***

Nếu tôi sao chép bằng cách sử dụng rsync từ một ghi được nguồn Tôi không nhận được lỗi này, Nếu tôi sao chép bằng cách sử dụng cp từ một chỉ đọc nguồn Tôi không nhận được lỗi này.

TLDR; Tôi muốn sử dụng rsync để sao chép chỉ đọc nguồn.

Chỉnh sửa: Đừng yêu cầu tôi có quyền ghi vào thư mục nguồn, điều đó là không thể (tức là nó không thuộc sở hữu của tôi), ngoài ra điều đó nằm ngoài phạm vi của câu hỏi này.

Chỉnh sửa (2): Để sao chép,

  1. Chuyển đến thư mục ổ đĩa này liên kết
  2. Thêm lối tắt vào ổ đĩa của bạn
  3. Bây giờ để Google Colab và cố gắng sao chép thư mục bằng rsync
  4. Bạn sẽ thất bại khi sử dụng rsync, bây giờ hãy thử sao chép bằng cp và bạn sẽ thành công.

Cập nhật: Nếu src_path là chỉ đọc tập tin, rsync hoạt động. nhưng nếu đó là một thư mục nó không hoạt động. (cp và tar hoạt động trên mọi điều kiện)

Tái bútTôi không muốn sử dụng cp, tôi muốn sử dụng rsync (vì vậy vui lòng không đề xuất tôi sử dụng bất kỳ thứ gì kém mạnh hơn rsync).

sudodus avatar
lá cờ jp
Bạn đã thử với các quyền nâng cao chưa, `sudo rsync ...`?
Cyber Avater avatar
lá cờ in
Không thành vấn đề, tôi sẽ không có quyền ghi đối với nguồn vì các tệp không thuộc sở hữu của tôi, đó là thư mục ổ đĩa google mà tôi chỉ có quyền xem.
sudodus avatar
lá cờ jp
Thay vì ghi tệp, bạn có thể thử tạo một tarball. Bạn có thể cần các quyền nâng cao (tiền tố có `sudo`) để duy trì quyền sở hữu và quyền, `tar -cvzf file.tar.gz "$src_path"` ; Đọc thêm về tar trong `man tar` hoặc tìm hướng dẫn qua internet.
Cyber Avater avatar
lá cờ in
cp (cp -r -L) -> hoạt động tar (tar -cvzf file.tar.gz "$src_path") -> hoạt động rsync (rsync -avP "$src_path" "$target_path") -> không hoạt động (nó sẽ chỉ hoạt động nếu tôi có quyền ghi cho src_path) Tôi cần rsync (tôi đã nói rằng tôi có thể sao chép nó bằng cp (bây giờ cũng là tar, đã kiểm tra)) nhưng muốn rsync
sudodus avatar
lá cờ jp
Một cách khác là tắt tùy chọn lưu trữ `-a` và để rsync ghi với quyền sở hữu/quyền mặc định của thư mục đích, (ví dụ: thay thế `-a` bằng `-r`). Nhân tiện, nó là hệ thống tệp nào (nơi đặt thư mục đích của bạn)? Hệ thống tệp linux (ví dụ: `ext4`) hoặc có thể là hệ thống tệp Windows hoặc MacOS?
Cyber Avater avatar
lá cờ in
rsync -rl "$src_path" "$target_path" cũng không hoạt động. hệ thống tập tin linux (từ google colab)
sudodus avatar
lá cờ jp
Hãy để chúng tôi [tiếp tục cuộc thảo luận này trong cuộc trò chuyện](https://chat.stackexchange.com/rooms/130076/discussion-between-sudodus-and-cyber-avater).
vanadium avatar
lá cờ cn
Điều quan trọng ở đây là cung cấp thông tin cụ thể về bản chất của hệ thống tệp nguồn và đích cũng như phiên bản của rsync. Tôi không thể tạo lại sự cố này với giao thức rsync phiên bản 3.2.3 phiên bản 31 trên Ubuntu 21.04 khi sao chép từ và sang phân vùng ext4.
Cyber Avater avatar
lá cờ in
Tôi đã thêm các bước sao chép.
Will avatar
lá cờ id
Tôi có thể đã hoàn toàn hiểu sai, nhưng thông báo lỗi gợi ý cho tôi rằng rsync không thành công vì nó không thể tạo một thư mục trong mục tiêu vì nó chỉ đọc. Tôi chắc rằng bạn đúng - rsync với các tùy chọn đó không cần đọc/ghi nguồn. Điều này có thể quá cơ bản, nhưng bạn đã kiểm tra xem đường dẫn tuyệt đối đến mục tiêu có đúng không, tức là bạn không sử dụng đường dẫn tương đối và do đó đang cố gắng tạo một thư mục trong thư mục nguồn (chỉ đọc)?
Cyber Avater avatar
lá cờ in
Tôi đang sử dụng đường dẫn tuyệt đối. Bạn có thể làm theo các bước sao chép và xác minh nếu muốn.
Điểm:0
lá cờ in

Hóa ra phiên bản do google collab cung cấp là 3.1.2 (có lỗi), trong khi phiên bản mới nhất là 3.2.3 (đã khắc phục sự cố).

Tái bút !apt update && apt upgrade -y không nâng cấp rsync lên 3.2.3. Tôi cần tải xuống và cài đặt thủ công từ đây (Có, tôi cũng phải tải xuống và cập nhật các phần phụ thuộc theo cách thủ công).

Cảm ơn tất cả vì đã cố gắng giúp đỡ tôi. (Đặc biệt là @vanadi).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.