Làm cách nào để sao chép âm lượng của Time Machine sang đĩa khác bằng rsync trong khi bảo quản ACL?


9

Gần đây tôi đã phải thay đổi hệ thống tập tin của máy Mac của mình từ bảo quản trường hợp sang hoàn toàn phân biệt chữ hoa chữ thường. Tôi đã làm điều đó bằng cách sử dụng CCC và sao chép dữ liệu vào một đĩa khác, sau đó quay trở lại đĩa chính mới được định dạng.

Bây giờ, tôi muốn thực hiện sao lưu Time Machine trên đĩa Time Machine cũ của mình, được lưu trữ trên NAS dựa trên FreeBSD của tôi, được xuất qua AFP. Tuy nhiên, tôi nhận được một lỗi mà các hệ thống tập tin không khớp, vì Time Machine vẫn có fs không phân biệt chữ hoa chữ thường. Lần này, tôi không thể sử dụng CCC, vì nó không hỗ trợ sao chép cấp độ tệp cho khối lượng Máy thời gian.

Đương nhiên, tôi đã đi thẳng vào rsync, nhưng điều đó đặt ra một vấn đề - nếu tôi chạy nó với:

/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/

nó bắt đầu phàn nàn ngay khi nó chạm vào Backups.backupdb/<machinename>thư mục failed to set permissions, operation not permitted. Vấn đề ở đây là sao chép ACL, khá hạn chế:

 ll -dle /Volumes/Time\ Machine\ Backups/Backups.backupdb/<machinename>/
 drwxr-xr-x@ 19 root  staff  646 Dec 23 09:38 /Volumes/Time Machine Backups/Backups.backupdb/<machinename>/
 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown

Vì vậy, tôi đã xóa -Akhỏi lệnh trên và rsync hiện đang vui vẻ chuyển GB dữ liệu.

Than ôi, tôi cũng muốn bảo tồn ACL. Điều đó có thể bằng cách nào đó? OS X không có getfacl / setfacl và tôi muốn tránh phân tích cú pháp đầu ra ls -le. Điều tôi thấy là một giải pháp ở đây là bằng cách nào đó nói với rsync để áp dụng ACL "ngược", nghĩa là, từ các tệp lá xuống thư mục, nhưng không có tùy chọn nào cho nó.


Là rsync ở đầu đích đang chạy với tư cách là người dùng có quyền chmod các tệp đó?
harrymc

Đây có thể là một câu hỏi rõ ràng, nhưng bạn có chắc rằng hỗ trợ ACL được bật trong âm lượng đích không? Bạn ngụ ý rằng bạn đang sao chép vào máy Mac, nhưng trong trường hợp đó, nó chỉ đơn giản là hoạt động trừ khi người dùng ở đầu đó không phải là id người dùng giống như các tệp gốc, trong trường hợp đó bạn có thể sẽ cần phải đặt điều đó lên hoặc chuyển sang sử dụng root (rõ ràng không phải là một điều tốt, nhưng quan tâm đến vấn đề cấp phép của việc thiết lập quyền sở hữu cho người khác).
Tom Scogland

Ngoài ra, tài khoản người dùng cho biết này phải được xác định cho mục tiêu, nếu không thì không thể đặt chủ sở hữu.
harrymc

Câu trả lời:


3

Tải xuống rsync phiên bản 3 bằng Homebrew. Sau đó, bạn có thể thử tùy chọn "--acls". Rsync trên Mac dường như có cú pháp dòng lệnh hơi khác so với các hệ điều hành khác. Bạn có thể muốn xem liên kết này: http://nicolasgallagher.com/mac-osx-bootable-backup-drive-with-rsync/ . Nó mô tả cách lấy rsync 3 và các đối số dòng lệnh mà anh ta sử dụng.

Tôi không phải là người dùng OSX, nhưng tôi sao lưu máy Mac của vợ tôi vào máy chủ Linux bằng rsync.


2

rsync, ít nhất là trong OS X 10.4 trở đi, sẽ chuyển các thuộc tính ACL nếu sử dụng tùy chọn -E. Xem trang người đàn ông.


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.