rsync:无法设置时间““

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     

答案1

为了让我们的意见一致:

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

接下来是两件事:

这只是一个文件系统

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

尝试将-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"
  • 运行脚本的用户是否是“正确用户™”(尝试)ssh -vv [email protected] "touch /dept/intranet/dept/atest/f1/test"

以上都不是

使用该选项运行命令-v,以获得详细效果。

答案2

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

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

答案3

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

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

相关内容