我正在运行一个已经运行了几个小时的大型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=rwX与rsync --no-p --chmod=ugo=rwX
--chmod这个选项告诉rsync应用一个或多个以逗号分隔的chmod结果值被当作是发送端为文件提供的权限。
查看手册了解更多。
对于较长的rsync作业,您可能会从延迟更新选项中受益:
--delay-updates这个选项把每个更新文件的临时文件放到一个保存目录中,直到传输结束,此时所有的文件都被快速的连续地重新命名。 这试图使文件的更新更加primefaces化。