代码之家  ›  专栏  ›  技术社区  ›  Eaten by a Grue kackleyjm

当uid/gid不同时rsync如何保留所有权?

  •  0
  • Eaten by a Grue kackleyjm  · 技术社区  · 6 年前

    部署新服务器并迁移 /home 使用 rsync

    rsync -avz oldserver:/home/ /home
    

    虽然我在新服务器上重新创建了所有相同的用户和组,但大多数用户和组的id都与旧服务器不同,但是这个命令神奇地保持了正确的所有权(基于名称),并在适用的情况下分配了新的gid和uid。我可以用 ls -n /home

    这怎么可能?rsync是否执行某种名称查找?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Community Radu Dragan    4 年前

    是的,默认情况下rsync按名称匹配所有者和组。详细信息见 --numeric-ids .

    --数字标识

    使用这个选项,rsync将传输数字组和用户id,而不是使用用户名和组名并在两端映射它们。

    --数字标识 未指定选项。

    如果用户或组在源系统上没有名称,或者在目标系统上没有匹配项,则使用源系统中的数字标识。

    rsync getpwnam getgrnam 查找与用户名和组名关联的uid和gid。