清理临时文件 ~/.cache/duplicity/temp 失败

清理临时文件 ~/.cache/duplicity/temp 失败

通常,当我运行 Duplicity 时,我会在运行结束时看到如下错误消息:

Cleanup of temporary file /home/user/.cache/duplicity/9a169830d41477b2dbc3c5b32edd4e8a/duplicity-MEXhMY-tempdir/mktemp-StAkzj-1 failed

上述目录将包含十个左右的文件,这些文件将在我下次运行 Duplicity 时被删除。

知道为什么运行增量备份时有时会失败吗?我自己没有看到任何模式,也没有运气找到其他人提到同样的问题。某个电子邮件列表中的某个人曾经提到他的语言环境给口是心非造成了问题。我尝试从正常的挪威博克马尔语言环境更改为 en-US,但仍然看到该问题。

这只是口是心非的正常操作吗?

在三个不同的系统上看到它:两个 Ubuntu 13.04 64 位桌面和一个 Ubuntu Server 13.04 64 位。

答案1

如果您之前以 root 身份运行过,则可能会发生这种情况duplicity。这些文件将属于 root 用户,因此非特权用户无法删除。如果是这种情况,只需更改文件的所有者即可解决此问题:

$ sudo chown -R user /home/user/.cache/duplicity/

答案2

也许尝试修改/usr/lib/python2.7/dist-packages/duplicity/tempdir.py(或该文件位于系统中的任何位置)以添加更具体的异常处理程序,它似乎就是这样做的:

except Exception:
    log.Info(_("Cleanup of temporary file %s failed") % util.ufn(file))
pass

在前面添加更具体的错误处理程序可以尝试显示更具体的错误号:

except OSError as ex:
    log.Info(_("Cleanup of temporary file %s failed with errno %d") % (util.ufn(file), ex.errno))
pass

在下面运行它strace会显示调用的 errno unlink,但可能会更慢,并且会浪费大量磁盘空间用于日志,尤其是。考虑到口是心非的本质。

相关内容