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

20 ssh rsync

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

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     
Run Code Online (Sandbox Code Playgroud)

小智 27

就这样我们在同一页面上:

-r recursive
-l preserve links
-c sync based on file checksum
-t preserve modification times
Run Code Online (Sandbox Code Playgroud)

然后两件事:

这只是一个文件系统的东西

如果目标文件夹是 NFS 挂载,或者某些不能很好地处理修改时间的文件系统,那么它就会中断。

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

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

${RSYNC} -crlOt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}
Run Code Online (Sandbox Code Playgroud)

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

或者它实际上是一个权限问题

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

以上都不是

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


gav*_*koa 5

-O ( --omit-dir-times ) 添加到您的命令行以避免它尝试在目录上设置修改时间。

另请阅读:https : //stackoverflow.com/questions/667992/rsync-error-failed-to-set-times-on-foo-txt-operation-not-permitted