Pulizia del file temporaneo ~ / .cache / duplicity / temp non riuscita


12

Spesso quando eseguo Duplicity vedo un messaggio di errore come questo alla fine della corsa:

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

La directory menzionata conterrà una decina di file che verranno eliminati la prossima volta che eseguirò Duplicity.

Qualche idea sul perché questo a volte fallisca quando si eseguono backup incrementali? Non ho visto alcun modello da solo, e ho avuto poca fortuna nel trovare altri che menzionano lo stesso problema. Qualcuno in una mailing list ha detto una volta che la sua localizzazione ha causato problemi a Duplicity. Ho provato a passare dalla mia normale località norvegese bokmål in en-US, ma continuo a vedere il problema.

È solo un'operazione normale per Duplicity?

Vedendolo su tre diversi sistemi: due desktop Ubuntu 13.04 a 64 bit e un Ubuntu Server 13.04 a 64 bit.


Sto riscontrando questo problema anche da quando ho spostato il mio cron job di duplicità per essere eseguito da root anziché da un utente sudo. Mi chiedo se in qualche modo la duplicità non ha la capacità di eliminare i file temporanei che crea durante l'esecuzione di uno script sincronizzato dall'utente root?
Lonniebiz,

Spero ancora una risposta qui.
Lonniebiz,

Hai installato GunPG? Ho avuto lo stesso problema (su OS X) fino a quando non ho installato gli strumenti GPG.
Cédric,

Risposte:


1

Questo può accadere se in precedenza hai eseguito duplicitycome root. I file apparterranno all'utente root e non potranno quindi essere rimossi da un utente non privilegiato. La semplice modifica del proprietario dei file risolverà questo problema, in questo caso:

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

0

Duplicity correttamente configurato non dovrebbe farlo.

Potresti trovare utili questi passaggi: Duplicità

So che sei su Ubuntu, ma non riesco a trovare alcuna fonte adatta a te. Esso dovrebbe essere universale.


0

Forse prova a modificare /usr/lib/python2.7/dist-packages/duplicity/tempdir.py(o dovunque quel file sia nel tuo sistema) per aggiungere un gestore di eccezioni più specifico, sembra fare proprio questo:

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

Un gestore di errori più specifico aggiunto di fronte potrebbe provare a mostrare il numero di errore più specifico:

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

Eseguirlo sotto stracemostrerebbe l'errno della unlinkchiamata, ma probabilmente sarebbe più lento e sprecherebbe molto spazio su disco per il registro, esp. data la natura di ciò che fa la doppiezza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.