如何在保留ACL的同时使用rsync将Time Machine卷复制到另一个磁盘?


9

最近,我不得不将Mac的文件系统从保留大小写更改为完全区分大小写。我通过使用CCC并将数据复制到另一张磁盘,然后返回到新格式化的主磁盘来做到这一点。

现在,我想在旧的Time Machine磁盘上进行Time Machine备份,该磁盘托管在通过AFP导出的基于FreeBSD的NAS上。但是,由于Time Machine仍然具有不区分大小写的fs,因此出现文件系统不匹配的错误。这次,我无法使用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现在愉快地移动了GB的数据。

las,我也想保留ACL。有可能吗?OS X没有getfacl / setfacl,我想避免解析的输出ls -le。我在这里看到的解决方案是以某种方式告诉rsync向后应用ACL,即从叶子文件到目录,但没有选择。


目标用户上的rsync是否以具有chmod许可权的用户身份运行?
harrymc 2013年

这可能是一个显而易见的问题,但是您确定目标卷中的ACL支持已打开吗?您暗示要复制到Mac,这应该可以,但是在那种情况下,它应该可以正常工作,除非该端的用户ID与原始文件的用户ID#不同,在这种情况下,您可能需要设置或改用root用户(显然不是一件好事,但要解决将所有权设置为其他人的权限问题)。
汤姆·斯科格兰

此外,应为目标定义该用户帐户,否则无法设置所有者。
harrymc

Answers:



2

如果使用-E选项,则至少在OS X 10.4及更高版本中,rsync将传输ACL属性。请参见手册页。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.