运行 rsync 时强制设置权限

运行 rsync 时强制设置权限

目前,我正在使用 rsync/ssh 组合脚本将数 GB 的数据从实时服务器备份到备份服务器,并允许每晚使用 cron 作业自动运行。

我遇到的问题是权限问题。

运行带有 -a 模式的 rsync 复制用户:组和文件模式,当前为 54122:游戏和 -rwx--S---。

为了能够执行备份服务器上的文件(不要问我为什么雇主要求这样做),我不得不运行一个耗时且耗 CPU 的(因为传输的数据量巨大)chown() 和 chmod(),将每个文件/文件夹设置为 www-data:www-data 和 755 的权限。

有没有什么办法可以设置 rsync 来强制将每个文件/文件夹设置为 www-data:www-data 和 755,或者我从错误的角度看待这个问题?

我想我可以运行 -rltD 而不是 -a(这相当于 -rlptgoD),但新文件会怎样?它们会收到哪些权限和所有者:组设置?

答案1

还有很多其他选择同步可以通过使用以下选项运行来更改权限:

rsync [options] --chmod=CHMOD source destination

您还可以将选项--archive与选项--no-owner--no-perms排除所有者权限的保留相结合。有关 CHMOD 的非常微妙的设置的更多选项,请参阅rsync 的手册页

答案2

如果您要从中复制的机器上已经以这种方式设置了权限,则可以尝试 -p。它可以保存权限。您可能还想尝试 grsync。它是 rsync 的 GUI,可以使某些选项更加明显。此外,-o 还可以保留所有者。

希望这能有所帮助。祝你好运。

相关内容