La limpieza del archivo temporal ~ / .cache / duplicity / temp falló

12

A menudo, cuando ejecuto Duplicity, veo un mensaje de error como este al final de la ejecución:

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

El directorio mencionado contendrá aproximadamente diez archivos que se eliminarán la próxima vez que ejecute Duplicity.

¿Alguna idea de por qué esto a veces falla al ejecutar copias de seguridad incrementales? No he visto ningún patrón, y he tenido poca suerte al encontrar a otros que mencionen el mismo problema. Un tipo en una lista de correo electrónico mencionó una vez que su ubicación le causó problemas a Duplicity. Traté de cambiar de mi ubicación bokmål noruega normal a en-EE. UU., Pero aún veo el problema.

¿Es esta la operación normal de Duplicity?

Al verlo en tres sistemas diferentes: dos escritorios Ubuntu 13.04 de 64 bits y un Ubuntu Server 13.04 de 64 bits.

Aeyoun
fuente
También tengo este problema desde que moví mi trabajo de duplicidad cron para que lo realice la raíz en lugar de un usuario de sudo. Me pregunto si de alguna manera la duplicidad no tiene la capacidad de eliminar los archivos temporales que crea mientras ejecuta un script cronometrado desde el usuario raíz.
Lonniebiz
Todavía estoy esperando una respuesta aquí.
Lonniebiz
¿Instalaste GunPG? Tuve el mismo problema (en OS X) hasta que instalé las herramientas GPG.
Cédric

Respuestas:

1

Esto puede suceder si ya se ha ejecutado duplicitycomo root. Los archivos pertenecerán al usuario raíz y, por lo tanto, no pueden ser eliminados por un usuario no privilegiado. Simplemente cambiando el propietario de los archivos arreglará esto, si este es el caso:

$ sudo chmod -R user /home/user/.cache/duplicity/
Kusalananda
fuente
0

La Duplicidad configurada correctamente no debería hacer eso.

Puede encontrar estos pasos útiles: Duplicidad

Sé que estás en Ubuntu, pero no puedo encontrar ninguna fuente adecuada para ti. Se debe ser universal.

LinuxSecurityFreak
fuente
0

Tal vez intente modificar /usr/lib/python2.7/dist-packages/duplicity/tempdir.py(o donde sea que ese archivo esté en su sistema) para agregar un controlador de excepciones más específico, parece hacer exactamente esto:

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

Un controlador de errores más específico agregado al frente podría intentar mostrar el número de error más específico:

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

Ejecutarlo stracemostrará el error de la unlinkllamada, pero probablemente será más lento y desperdiciará mucho espacio en disco para el registro, especialmente. dada la naturaleza de lo que hace la duplicidad.

Josip Rodin
fuente