以root身份运行rsync但保留用户所有权


36

我想使用rsync将用户文件从一台服务器备份到另一台服务器。但我注意到用户文件夹更改为root。如何使用rsync保持用户权限(由root运行)?


在复制驱动器以及将文件复制回驱动器时,rsync需要以root用户身份运行。如果以低权限用户身份执行任一步骤,则根文件将降级为该用户。
Eric Leschinski

Answers:


46

使用该-a标志,其中包括选项-o-g,其中保留了所有者和组。这要求您rsync以root用户身份运行。

另请参阅man rsync


1
如果没有root也有可能吗?是否可以选择将映射存储在单独的sidecar文件中?
thomas.mc.work

1
错过了此评论。不,除非root您不允许将所有者更改为其他任何人,然后再更改为您自己的用户,否则它不起作用。映射文件根本无法解决这个问题。
斯文

15

保留权限是通过“存档”模式实现的-a。常见的示例是-avz

rsync -avz foo:src/bar/ /data/bar

这样可以确保在传输中保留符号链接,设备,属性,权限,所有权等。另外,将使用压缩来减小传输的数据部分的大小。


5

如果您使用rsync进行备份,我真的可以建议您使用rsnapshot代替(它使用rsync)。它轮换备份并使用硬链接,因此您可以看到每日备份之间的差异(但文件夹看起来仍然具有完整的内容)。我用它来备份工作中的Windows和Linux服务器。非常适合我们!

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.