Falha na limpeza do arquivo temporário ~ / .cache / duplicity / temp

12

Frequentemente, quando executo o Duplicity, vejo uma mensagem de erro como esta no final da execução:

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

O diretório mencionado conterá mais ou menos dez arquivos que serão excluídos na próxima vez que executar o Duplicity.

Alguma idéia de por que isso às vezes falha ao executar backups incrementais? Eu mesmo não vi nenhum padrão e tive pouca sorte em encontrar outras pessoas mencionando o mesmo problema. Um cara de uma lista de email mencionou uma vez que seu local causava problemas para o Duplicity. Tentei mudar do meu idioma norueguês normal para bokmål nos EUA, mas ainda vejo o problema.

Esta é apenas uma operação normal do Duplicity?

Vê-lo em três sistemas diferentes: dois desktops Ubuntu 13.04 de 64 bits e um Ubuntu Server 13.04 de 64 bits.

Aeyoun
fonte
Eu também estou tendo esse problema, pois movi meu trabalho cron de duplicidade para ser executado pela raiz, em vez de um usuário sudo. Gostaria de saber se de alguma forma duplicidade não tem a capacidade de excluir os arquivos temporários criados durante a execução de um script agendado a partir do usuário root?
Lonniebiz
Eu ainda estou esperando por uma resposta aqui.
precisa saber é o seguinte
Você instalou o GunPG? Eu tive o mesmo problema (no OS X) até instalar as ferramentas GPG.
Cédric

Respostas:

1

Isso pode acontecer se você já executou duplicitycomo root. Os arquivos pertencerão ao usuário root e, portanto, não poderão ser removidos por um usuário não privilegiado. Simplesmente alterar o proprietário dos arquivos corrigirá isso, se este for o caso:

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

O Duplicity configurado corretamente não deve fazer isso.

Você pode encontrar estas etapas úteis: Duplicidade

Eu sei que você está no Ubuntu, mas não consigo encontrar nenhuma fonte adequada para você. Ele deve ser universal.

LinuxSecurityFreak
fonte
0

Talvez tente modificar /usr/lib/python2.7/dist-packages/duplicity/tempdir.py(ou onde quer que esse arquivo esteja no seu sistema) para adicionar um manipulador de exceção mais específico, parece fazer exatamente isso:

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

Um manipulador de erro mais específico adicionado à frente dele poderia tentar mostrar o número de erro mais específico:

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

Executá-lo em baixo stracemostraria o erro da unlinkchamada, mas provavelmente seria mais lento e desperdiçaria muito espaço em disco para o log, esp. dada a natureza do que a duplicidade faz.

Josip Rodin
fonte