我想使用 rsync 将用户文件从一台服务器备份到另一台服务器。但我注意到用户文件夹更改为 root。如何使用 rsync(由 root 运行)保留用户权限?
答案1
使用-a
标志,其中包括选项-o
和-g
,用于保留所有者和组。这要求您rsync
以 root 身份运行。
另请参阅man rsync
。
答案2
权限的保存是通过“归档”模式实现的-a
。常见的例子有-avz
:
rsync -avz foo:src/bar/ /data/bar
这可确保符号链接、设备、属性、权限、所有权等在传输过程中得到保留。此外,还将使用压缩来减少传输数据部分的大小。
答案3
如果您使用 rsync 进行备份,我强烈建议您改用 rsnapshot(它使用 rsync)。它会轮换备份并使用硬链接,因此您可以看到每日备份之间的差异(但文件夹看起来仍然包含完整的内容)。我在工作中使用它来备份 Windows 和 Linux 服务器。对我们来说很完美!
答案4
从 rsyncd.conf 手册中,除了 rsync 客户端的 -a 选项之外,您还必须将 uid 和 gid 都指定为 0。