Очистка временного файла ~ / .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 для двойственности для выполнения пользователем root вместо пользователя sudo. Интересно, если у duplicity нет возможности удалить временные файлы, которые он создает при запуске скрипта, созданного пользователем root?
Lonniebiz

Я все еще надеюсь на ответ здесь.
Lonniebiz

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

Ответы:


1

Это может произойти, если вы ранее работали duplicityс правами root. Файлы будут принадлежать пользователю root и поэтому не могут быть удалены непривилегированным пользователем. Простая смена владельца файлов исправит это, если это так:

$ sudo chmod -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.