将更改权限触发rsync再次下载?

我正在运行一个已经运行了几个小时的大型rsync作业,并且会运行多个。

我需要更改下载的文件的权限,从我的networking应用程序访问它们,但我担心这会打破复制工作?

我必须担心或权限与同步本身没有任何关系吗?

我正在复制rsync -rchavzP

这取决于…如果更改权限导致rsync无法读取和/或在您的Web服务器上写入作业应该失败。

通常,智能处理权限的更改,如果文件没有更改,rsync将只会更改权限,而不会传输文件本身。 选项--no-perms可以确保目标位置的权限差异不会被“更正”。

在rsync的早期版本中,用于确定要复制的内容的完整文件列表是第一次生成的,而IIRC以后在本地/或远程文件列表中的更改将在初始扫描之后不会被拾取,允许您更改权限等。

-r, --recursive –recursive …从rsync 3.0.0开始,所使用的recursionalgorithm现在是一个增量式扫描,它比以前使用的内存less得多,并在完成前几个目录的扫描之后开始传输。 …
有些选项需要rsync才能知道完整的文件列表,所以这些选项禁用增量recursion模式。 这些包括: --delete-before, --delete-after, --prune-empty-dirs, --delay-updates和 – --delay-updates

因此,如果本地和远程rsync版本都高于3.0.0,则需要知道在应用更改的权限之前,rsync是否已经完全使用特定的目录。

更好地完全避免的问题,当然,并使用rsync来设置正确的rsync --no-p --chmod=ugo=rwXrsync --no-p --chmod=ugo=rwX

--chmod这个选项告诉rsync应用一个或多个以逗号分隔的chmod结果值被当作是发送端为文件提供的权限。

查看手册了解更多。

对于较长的rsync作业,您可能会从延迟更新选项中受益:

--delay-updates这个选项把每个更新文件的临时文件放到一个保存目录中,直到传输结束,此时所有的文件都被快速的连续地重新命名。 这试图使文件的更新更加primefaces化。