在运行rsync时强制设置权限


14

目前,我正在使用rsync / ssh组合脚本从实时服务器向备份服务器备份千兆字节和几千兆字节的数据,从而允许每天晚上执行cron作业时自动进行操作。

我遇到的问题是权限。

使用-a模式运行rsync会复制user:group和filemode,它们当前为54122:games和-rwx--S ---。

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

无论如何,我可以设置rsync强制将每个文件/文件夹设置为www-data:www-data和755还是从错误的角度看这个问题?

我猜我可以运行-rltD而不是-a(等效于-rlptgoD),但是新文件会怎样?他们会收到什么权限和所有者:组设置?

Answers:


22

在许多其他选项中,rsync可以通过使用以下选项运行权限来更改权限:

rsync [options] --chmod=CHMOD source destination

您还可以在其中将option --archive与option 结合使用,--no-owner--no-perms排除保留所有者责任。权限。有关CHMOD非常细微设置的更多选项,请参见rsync联机帮助页


请注意,该--perms标志是使上述命令起作用所必需的。另外,尽管我没有尝试,但我假设该--no-perms标志将不起作用,它很可能会禁用该--chmod标志。
劳伦特

6
示例:rsync --chmod=ugo=rX source/ destination/
Flimm

1

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

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

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.