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

Nik*_*vic 10 rsync acl macos

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

现在,我想在我的旧 Time Machine 磁盘上进行 Time Machine 备份,该磁盘托管在我的基于 FreeBSD 的 NAS 上,通过 AFP 导出。但是,我收到文件系统不匹配的错误,因为 Time Machine 仍然具有不区分大小写的 fs。这一次,我不能使用 CCC,因为它不支持 Time Machine 卷的文件级复制。

自然地,我直接选择了 rsync,但这会引发一个问题——如果我使用以下命令运行它:

/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/
Run Code Online (Sandbox Code Playgroud)

它一碰到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
Run Code Online (Sandbox Code Playgroud)

所以,我-A从上面的命令中删除了,rsync 现在很高兴地移动 GB 的数据。

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

小智 4

使用 Homebrew 下载 rsync 版本 3。然后您可以尝试“--acls”选项。Mac 上的 rsync 的命令行语法似乎与其他操作系统略有不同。您可能想查看此链接:http://nicolasgallagher.com/mac-osx-bootable-backup-drive-with-rsync/。它描述了如何获取 rsync 3 以及他使用的命令行参数。

我不是 OSX 用户,但我使用 rsync 将我妻子的 Mac 备份到 Linux 服务器。