Як скопіювати обсяг Time Machine на інший диск за допомогою rsync, зберігаючи ACL?


9

Нещодавно мені довелося змінити файлову систему мого Mac з збереження регістру на повністю чутливу до регістру. Я зробив це, використовуючи CCC і скопіювавши дані на інший диск, потім повернувшись до новоформатованого основного диска.

Тепер я хотів зробити резервну копію Time Machine на моєму старому диску Time Machine, розміщеному на моєму базі даних FreeBSD, експортованому через AFP. Однак я отримую помилку, що файлові системи не відповідають, оскільки Time Machine все ще має нечутливі регістри. Цього разу я не можу використовувати CCC, оскільки він не підтримує копіювання рівня файлів для томів Time Machine.

Звичайно, я пішов прямо на rsync, але це викликає проблему - якщо я запускаю її:

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

він починає скаржитися, як тільки потрапляє в Backups.backupdb/<machinename>папку, з failed to set permissions, operation not permitted. Проблема тут полягає в копіюванні ACL, які є досить обмежуючими:

 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

Отже, я видалив -Aіз вищевказаної команди, і rsync тепер радісно переміщує ГБ даних.

На жаль, я також хотів би зберегти ACL. Це можливо якось? У OS X немає getfacl / setfacl, і я хотів би уникнути розбору результатів ls -le. Я вважаю, що тут є рішення - якось сказати rsync застосовувати ACL "назад", тобто з файлів листів вниз до каталогів, але для цього немає жодного варіанту.


Чи працює rsync на кінцевому кінці як користувач з дозволом chmod цих файлів?
— harrymc

Це може бути очевидним питанням, але ви впевнені, що підтримка ACL увімкнена в томі призначення? Ви маєте на увазі, що ви копіюєте в mac, що і повинно, але в такому випадку воно повинно просто працювати, якщо користувач на цьому кінці не буде тим самим ідентифікатором користувача #, як оригінальні файли, і в цьому випадку вам, ймовірно, потрібно буде встановити що вгору або перейти на використання root (очевидно, це не дуже добре, але піклується про проблему дозволу встановлення права власності на когось іншого).
— Том Шотландія

Крім того, зазначений обліковий запис користувача повинен бути визначений для цілі, інакше власник не може бути встановлений.
— harrymc

Відповіді:


3

Завантажте rsync версії 3 за допомогою Homebrew. Тоді ви можете спробувати варіант "--acls". Схоже, у rsync на Mac синтаксис командного рядка дещо відрізняється від інших операційних систем. Напевно, ви хочете подивитися за цим посиланням: http://nicolasgallagher.com/mac-osx-bootable-backup-drive-with-rsync/ . Тут описано, як отримати rsync 3 та аргументи командного рядка, який він використовує.

Я не користувач OSX, але я створю резервну копію Mac дружини на Linux-сервері з rsync.


2

rsync, принаймні в OS X 10.4 і далі, передасть атрибути ACL, якщо використовується параметр -E. Дивіться сторінку чоловіка.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.