rsync:无法在“ <目录路径>”上设置时间


20

我正在尝试将文件从一台服务器同步到另一台服务器,但出现此错误

rsync:无法在“ / dept / intranet / dept / atest /”上设置时间。:不允许操作(1)

有人可以帮我为什么吗?

我想这是一些权限问题。

这是我的命令:

RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
REMOTE_HOST=test.desktop

${RSYNC} -crlt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}

LOCAL_DIR = workplace1/f1/
permissions drwxr-xr-x   11 root     root         4096 Mar 19  2009 f1

REMOTE_DIR=/dept/intranet/dept/atest/f1/
permissions :drwxr-xr-x 14 dbld   a1     4096 Mar 19  2009 f1     

您能给我们更多信息吗?*您的rsync命令*本地+远程用户*文件权限
Brian Clozel

编辑了问题。

Answers:


26

只是我们在同一页面上:

-r recursive
-l preserve links
-c sync based on file checksum
-t preserve modification times

然后两件事:

只是一个文件系统而已

如果目标文件夹是NFS挂载,或某些文件系统无法很好地处理mod-time,则它会中断。

尝试将-O(for --omit-dir-times)参数添加到命令中。

修改时间将保留,但目录将省略:

${RSYNC} -crlOt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}

这是我最好的猜测,因为文件同步似乎可以正常工作,而您的错误发生在mod时间同步上。无论如何,您真的需要保留修改时间吗?该-c选项基于校验和跳过文件(因此,调制时间无关紧要)。

或者实际上是权限问题

  • 运行脚本的用户是否具有足够的特权来编辑/写入目标文件夹?(尝试ssh -vv test.desktop "touch /dept/intranet/dept/atest/f1/test"
  • 运行脚本的用户是否为“ Right Right™”(尝试ssh -vv thegooduser@test.desktop "touch /dept/intranet/dept/atest/f1/test"

以上都不是

使用-v选项运行命令,以获取详细信息。


1
谢谢你的--omit-dir-times提示。真的有帮助。
JakeGould


1

就我而言,我通过授予进行同步的父目录权限来解决了这个问题。

实际上,父目录的所有者不是进行同步的用户。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.