Як скопіювати обсяг 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.