我有两个相同的PHP应用程序在他们每个目录。 我想从一个源目录执行rsync -rvz到另一个目的地,所以rsync只会复制已更改的文件。 问题是源目录中的文件有755个权限,错误。 目的地权限没有问题。
我怎么能告诉rsync忽略权限检查,只检查大小? 谢谢。
只要你不提供-p标志权限就不应该改变 。 如果您仍然没有获得您所期望的权限,请确保perms已closures,并使用–chmod = ugo = rwX
供参考: http : //linux.die.net/man/1/rsync
-r, --recursive recurse into directories -v, --verbose increase verbosity -z, --compress compress file data during the transfer -n, --dry-run perform a trial run with no changes made -p, --perms preserve permissions -E, --executability preserve executability --chmod=CHMOD affect file and/or directory permissions
-p,–perms此选项会导致接收rsync将目标权限设置为与源权限相同。 (另请参阅–chmod选项,以修改rsync认为是源权限的方法。)
手册页继续说:
总结:给目标文件(包括旧的和新的)源的权限,使用–perms。 要为新文件指定目标默认权限(同时保持现有文件不变),请确保–perms选项已closures,并使用–chmod = ugo = rwX(确保所有非屏蔽位都已启用)。
注意:如果可能的话,开发人员可以将更改推回到repo中,让所有服务器使用代码repo,而不是使用rsync将文件从一台服务器发送到另一台服务器。
我可能会误会,但没有-p它不应该改变权限。 (也是一个档案将保存它,但你不明显使用)
如果你提供-a标志-p被自动包括在内。 如果你指定--no-p -a所有其他选项保持不变。