我正在测试我是否使用了正确的选项,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