¿Cómo copiar el volumen de Time Machine a otro disco usando rsync mientras se preservan las ACL?

9

Recientemente tuve que cambiar el sistema de archivos de mi Mac de preservar mayúsculas y minúsculas a ser completamente sensible a mayúsculas y minúsculas. Lo hice usando CCC y copiando datos en otro disco, luego volví al disco principal recién formateado.

Ahora, quería hacer la copia de seguridad de Time Machine en mi antiguo disco de Time Machine, que está alojado en mi NAS basado en FreeBSD, exportado a través de AFP. Sin embargo, recibo un error que los sistemas de archivos no coinciden, ya que Time Machine todavía tiene fs sin distinción entre mayúsculas y minúsculas. Esta vez, no puedo usar CCC, ya que no admite la copia a nivel de archivo para volúmenes de Time Machine.

Naturalmente, fui directamente a rsync, pero eso plantea un problema, si lo ejecuto con:

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

comienza a quejarse tan pronto como llega a la Backups.backupdb/<machinename>carpeta, con failed to set permissions, operation not permitted. El problema aquí es copiar ACL, que son bastante restrictivas:

 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

Entonces, eliminé -Ael comando anterior, y rsync ahora está felizmente moviendo GB de datos.

Por desgracia, me gustaría preservar las ACL también. ¿Es eso posible de alguna manera? OS X no tiene getfacl / setfacl, y me gustaría evitar analizar la salida de ls -le. Lo que veo como una solución aquí es decirle de alguna manera a rsync que aplique las ACL "al revés", es decir, desde los archivos hoja a los directorios, pero no hay otra opción.

Nikola Knezevic
fuente
¿Se ejecuta rsync en el destino final como un usuario con permiso para modificar esos archivos?
harrymc
Esta puede ser una pregunta obvia, pero ¿está seguro de que la compatibilidad con ACL está activada en el volumen de destino? Implica que está copiando a una Mac, lo que debería, pero en ese caso simplemente debería estar funcionando a menos que el usuario en ese extremo no sea el mismo ID de usuario # que los archivos originales, en cuyo caso probablemente deba configurar eso, o cambiar a usar root (obviamente no es algo bueno, pero se encarga del problema de permisos de establecer la propiedad de otra persona).
Tom Scogland
Además, dicha cuenta de usuario debe definirse para el objetivo, o de lo contrario no se puede establecer el propietario.
harrymc

Respuestas:

3

Descargue rsync versión 3 usando Homebrew. Entonces puedes probar la opción "--acls". El rsync en Mac parece tener una sintaxis de línea de comandos ligeramente diferente de otros sistemas operativos. Probablemente quiera echar un vistazo a este enlace: http://nicolasgallagher.com/mac-osx-bootable-backup-drive-with-rsync/ . Describe cómo obtener rsync 3 y los argumentos de la línea de comandos que usa.

No soy un usuario de OSX, pero hice una copia de seguridad de la Mac de mi esposa en un servidor Linux con rsync.

Lencho Reyes
fuente
2

rsync, al menos en OS X 10.4 y siguientes, transferirá los atributos de ACL si se usa la opción -E. Ver la página del manual.

neoplop
fuente