Не вдалося очистити тимчасовий файл ~ / .cache / duplicity / temp


12

Часто, коли я запускаю Duplicity, я бачу таке повідомлення про помилку наприкінці запуску:

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

Згаданий каталог буде містити десять файлів, які видаляються наступного разу, коли я запускаю Duplicity.

Будь-яка ідея, чому це іноді не вдається, коли виконується додаткове резервне копіювання? Я не бачив жодного зразка до цього, і мені не пощастило знайти інших людей, які згадують ту саму проблему. Якийсь хлопець у списку електронної пошти якось згадував, що його локальний стан спричиняв проблеми з Duplicity. Я спробував перейти зі своєї звичайної норвезької мови bokmål на en-US, але все-таки бачу проблему.

Це просто нормальна робота для Duplicity?

Бачачи це на трьох різних системах: два 64-розрядних настільних комп'ютерів Ubuntu 13.04 та один 64-розрядний Ubuntu Server 13.04.


У мене виникає ця проблема також з моменту переміщення моєї задачі cron duplicity для виконання root, а не користувача sudo. Цікаво, чи якось у подвійності не є можливість видалити тимчасові файли, які він створює під час запуску скрипта, який він виконує з користувачем root?
Lonniebiz

Я все ще сподіваюся на відповідь тут.
Lonniebiz

Ви встановили GunPG? У мене була така ж проблема (на OS X), поки я не встановив інструменти GPG.
Седрик

Відповіді:


1

Це може статися, якщо ви раніше працювали duplicityяк root. Файли належатимуть кореневому користувачеві, тому непривілейований користувач не може бути видалений. Просто це змінить власника файлів, якщо це так:

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

0

Правильно налаштований Duplicity не повинен цього робити.

Ці кроки можуть виявитися корисними: Подвійність

Я знаю, що ви перебуваєте на Ubuntu, але я не можу знайти для вас жодного підходящого джерела. Він повинен бути універсальним.


0

Можливо, спробуйте змінити /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би показав помилку unlinkвиклику, але, швидше за все, буде повільніше і витратить багато дискового простору для журналу, esp. враховуючи характер того, що робить двозначність.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.