即使使用 -a 和 --numeric-ids,Rsync 也不保留 UID/GID

即使使用 -a 和 --numeric-ids,Rsync 也不保留 UID/GID

我正在尝试使用rsync它来备份远程文件,但远程系统上的 UID/GID 与我本地的不同。无论我尝试什么,我的所有本地文件都是“opux/opux”,它们的 *ID 都是 1000。这是我的 rsync:

sync -e "ssh" --rsync-path="sudo rsync" -AXSHavz --progress --numeric-ids pi@rpinfs:/mnt/mainhdd/dospace/ --exclude 'videos' ~/backups/dospace/

我已经尝试过--super--fake-super但第一个只是给我“不允许操作”,而第二个似乎没有做任何事情。我该怎么办?

我知道在保留所有元数据的同时进行备份的一种方法是使用 tar,但据我了解,它不能很好地进行远程备份。我想要一些可以简单运行的东西,理想情况下,不需要在我的本地系统上以 root 身份运行。

远程系统是运行 Raspbian 的 Raspberry Pi,因此唯一的登录用户是 root。我的本地系统是Ubuntu 16.04 AMD64。

答案1

如果您要从远程传输数据,则无需root远程(除非您的 SSH 用户没有所有受影响文件的读取(对于目录:执行)权限。

但是,如果您希望 rsync 在本地更改文件的所有者(和组),那么它必须像平常一样运行root。例外情况:如果所有文件和目录都属于同一用户(这不是您通常在本地运行 rsync 的用户),那么您可以以该用户身份运行 rsync。

rsync另一种解决方案是根本不关心文件元数据并单独处理它:

getfacl --recursive /mnt/mainhdd/dospace

但有些东西必须在root本地运行。跑步是否setfaclroot跑步更好rsyncroot一个有趣的问题......

相关内容