RSYNC 更改文件终止并失败

RSYNC 更改文件终止并失败

我们的 Jenkins 机器上有一个奇怪的、很少发生的错误,这些机器从 python 执行 rsync 来执行一些归档任务。

错误是:

rsync: rename "/OLD_PATH/internal/.my_config.json.MfXl7i" -> "internal/my_config.json": Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]

其错误的命令是:

rsync -az --no-p --no-g --chmod=ugo=rwX NEW_PATH/ OLD_PATH
returned non-zero exit status 23

在 rsync 调用之前由 python 脚本的其余部分编写的文件是“my_config.json”。文件名之前的点和结尾的“MfXl7i”来自哪里?为什么 rsync 明显改变文件终止?

预先非常感谢。

答案1

相关错误信息在第一行:

rsync: rename "internal/.my_config.json.MfXl7i" -> "internal/my_config.json": Permission denied (13)

这意味着该rsync命令可以同步数据,但不能写入新文件。

您对该文件有写权限吗internal/my_config.json?也许该文件存在并且受到写保护,或者不属于您?

您可以通过查看该文件及其包含的文件夹来找到答案:

# ls -ld internal internal/my_config.json

您需要能够将指定文件写入该文件夹,例如通过拥有该文件夹,对该文件夹具有读+写+执行权限,并且如果该文件存在,则它不能具有不可变属性或只读(您需要写入权限)。此外,该文件夹需要驻留在非只读安装的磁盘/分区上。

相关内容