rsync未在目标文件上设置正确的UID和GID
我正在测试我是否在rsync
上使用了正确的选项,因为我想将旧服务器中的大量文件复制到新服务器,保留了确切的权限。
在旧服务器上,该文件存在如下:
$ ll -n total 0 -rw-r--r-- 1 1002 1000 0 Jan 9 22:56 testfile
然后我使用rsync
来复制文件,如下所示:
$ rsync -e ssh -avP . 10.10.10.254:/home/someuser/test Enter passphrase for key 'newserver.key': sending incremental file list ./ testfile 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/2) sent 125 bytes received 34 bytes 28.91 bytes/sec total size is 0 speedup is 0.00
在新服务器上,没有ID为1002的用户,也没有具有相同名称的用户。 该文件创建如下:
$ ll -n total 0 -rw-r--r-- 1 10001 10001 0 Jan 9 23:56 testfile
我想知道为什么文件不是用ID 1002 1000创建的,因为-a
(存档)选项包括-o
(所有者), – -g
(组)和-p
(权限),并且手册页说
如果用户或组在源系统上没有名称或在目标系统上没有匹配项,则使用源系统中的数字ID。
即使我手动添加--numeric-ids
开关(我实际上不想要),结果也是如此
$ ll -n total 0 -rw-r--r-- 1 10001 1000 0 Jan 9 23:56 testfile
所以它只保留了GID,而不是UID
rsync
必须在目标计算机上以root
权限运行。
选项1:为root
用户启用SSH登录,然后指定root@
进行登录。
选项2: 在此问题中使用与sudo
一起使用rsync
。