Ошибка резервного копирования Déjà Dup с трассировкой стека python на Ubuntu 16.04 [duplicate]

Я пытаюсь восстановить резервные копии с более старой установки Ubuntu на новую установку на Ubuntu 16.04. При попытке восстановления возникает следующая ошибка:

Failed with an unknown error Далее следуют:

Traceback (most recent call last): File "/usr/bin/duplicity", line 1532, in <module> with_tempdir(main) File "/usr/bin/duplicity", line 1526, in with_tempdir fn() File "/usr/bin/duplicity", line 1380, in main do_backup(action) File "/usr/bin/duplicity", line 1461, in do_backup list_current(col_stats) File "/usr/bin/duplicity", line 698, in list_current for path in path_iter: File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 354, in combine_path_iters refresh_triple_list(triple_list) File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 341, in refresh_triple_list new_triple = get_triple(old_triple[1]) File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 327, in get_triple path = path_iter_list[iter_index].next() File "/usr/lib/python2.7/dist-packages/duplicity/diffdir.py", line 239, in sigtar2path_iter for tarinfo in tf: File "/usr/lib/python2.7/tarfile.py", line 2508, in next tarinfo = self.tarfile.next() File "/usr/lib/python2.7/tarfile.py", line 2350, in next raise ReadError("unexpected end of data") ReadError: unexpected end of data

Резервная копия завершена успешно, но я не могу ее восстановить.

Спасибо заранее!

1
задан 6 August 2016 в 18:07

7 ответов

Я добавлю этот бит информации, так как мой аналогичный вопрос здесь. Ошибка резервного копирования Déjà Dup с трассировкой стека python на Ubuntu 16.04 была отмечена как дубликат (на самом деле это не дубликат, я не пытался восстановить резервную копию, я пытался создать резервные копии, хотя ошибка была одинаковой).

Я не использовал Déjà Dup после того, как я разместил свой вопрос; поскольку он не работал, я отключил расписание. Затем, когда Виктор Дорс также отправил свой ответ на мой вопрос, я попробовал еще раз, не внося никаких изменений, чтобы узнать, не получил ли я ошибку. Дежа Дуп сказал, что он делает полную резервную копию, которая может занять больше времени, но это удалось. Затем я снова включил ежедневное расписание, и инкрементное резервное копирование также прошло вчера. Итак, я думаю, что моя проблема, возможно, была исправлена ​​в некоторых обновлениях Ubuntu. Версия двуличия на моей машине в настоящее время 0.7.06. Поэтому я бы попробовал сделать обновление программного обеспечения и посмотреть, исправляет ли это проблему раньше всего.

0
ответ дан 18 July 2018 в 12:15

Изменить: Отказ от ответственности - у меня нет большого опыта работы с кодом Python или двуличности, поэтому я не могу сказать, будет ли эта модификация или не вызовет каких-либо негативных последствий. Для меня я смог завершить восстановление, добавив строку кода ниже.

Edit: Мне удалось пройти мимо этой вставки проверки ключа для volume_name_dict объект

Новая строка: if vol_num in backup_set.volume_name_dict.keys():

В двуличности 0.7.06 вы можете заменить этот метод на строку 752:

def get_fileobj_iter(backup_set): """Get file object iterator from backup_set contain given index""" manifest = backup_set.get_manifest() volumes = manifest.get_containing_volumes(index) for vol_num in volumes: if vol_num in backup_set.volume_name_dict.keys(): yield restore_get_enc_fileobj(backup_set.backend, backup_set. volume_name_dict[vol_num], manifest. volume_info_dict[vol_num]) cur_vol[0] += 1 log.Progress(_('Processed volume %d of %d') % (cur_vol[0], num_vols), cur_vol[0], num_vols) if hasattr(globals.backend, 'pre_process_download'): file_names = [] for backup_set in backup_setlist: manifest = backup_set.get_manifest() volumes = manifest.get_containing_volumes(index) for vol_num in volumes: file_names.append(backup_set.volume_name_dict[vol_num]) globals.backend.pre_process_download(file_names) fileobj_iters = list(map(get_fileobj_iter, backup_setlist)) tarfiles = list(map(patchdir.TarFile_FromFileobjs, fileobj_iters)) return patchdir.tarfiles2rop_iter(tarfiles, index)

Если вы не знакомы с Python (я не), вы можете проверить код здесь: http://pep8online.com/ - отступы должны должным образом совпадать.

0
ответ дан 18 July 2018 в 12:15

Это сработало для меня:

1 / Загрузите последнюю версию двуязычной версии (в настоящее время v0.7.14):

http://duplicity.nongnu.org/

2 / Переместить в / usr / local:

% cd /usr/local

3 / Извлечь tar-мяч

% tar -xvf <DuplicityTarBallHome>/duplicity-0.7.14.tar.gz

4 / Переместить в извлеченную директорию

% cd /usr/local/duplicity-0.7.14

5 / Установить версию двуличия:

% python setup.py install

-> Установка должна завершиться без ошибок

6 / Проверить установку последней версии:

% duplicity --version

-> двуличность 0.7.14 [ ! d15]

7 / Наконец, восстановите резервную копию:

% duplicity restore file:<BACKUP_HOME> <DESTINATION_HOME>

-> Файлы правильно восстановлены

0
ответ дан 18 July 2018 в 12:15

Я добавлю этот бит информации, так как мой аналогичный вопрос здесь. Ошибка резервного копирования Déjà Dup с трассировкой стека python на Ubuntu 16.04 была отмечена как дубликат (на самом деле это не дубликат, я не пытался восстановить резервную копию, я пытался создать резервные копии, хотя ошибка была одинаковой).

Я не использовал Déjà Dup после того, как я разместил свой вопрос; поскольку он не работал, я отключил расписание. Затем, когда Виктор Дорс также отправил свой ответ на мой вопрос, я попробовал еще раз, не внося никаких изменений, чтобы узнать, не получил ли я ошибку. Дежа Дуп сказал, что он делает полную резервную копию, которая может занять больше времени, но это удалось. Затем я снова включил ежедневное расписание, и инкрементное резервное копирование также прошло вчера. Итак, я думаю, что моя проблема, возможно, была исправлена ​​в некоторых обновлениях Ubuntu. Версия двуличия на моей машине в настоящее время 0.7.06. Поэтому я бы попробовал сделать обновление программного обеспечения и посмотреть, исправляет ли это проблему раньше всего.

0
ответ дан 24 July 2018 в 19:56

Изменить: Отказ от ответственности - у меня нет большого опыта работы с кодом Python или двуличности, поэтому я не могу сказать, будет ли эта модификация или не вызовет каких-либо негативных последствий. Для меня я смог завершить восстановление, добавив строку кода ниже.

Edit: Мне удалось пройти мимо этой вставки проверки ключа для volume_name_dict объект

Новая строка: if vol_num in backup_set.volume_name_dict.keys():

В двуличности 0.7.06 вы можете заменить этот метод на строку 752:

def get_fileobj_iter(backup_set): """Get file object iterator from backup_set contain given index""" manifest = backup_set.get_manifest() volumes = manifest.get_containing_volumes(index) for vol_num in volumes: if vol_num in backup_set.volume_name_dict.keys(): yield restore_get_enc_fileobj(backup_set.backend, backup_set. volume_name_dict[vol_num], manifest. volume_info_dict[vol_num]) cur_vol[0] += 1 log.Progress(_('Processed volume %d of %d') % (cur_vol[0], num_vols), cur_vol[0], num_vols) if hasattr(globals.backend, 'pre_process_download'): file_names = [] for backup_set in backup_setlist: manifest = backup_set.get_manifest() volumes = manifest.get_containing_volumes(index) for vol_num in volumes: file_names.append(backup_set.volume_name_dict[vol_num]) globals.backend.pre_process_download(file_names) fileobj_iters = list(map(get_fileobj_iter, backup_setlist)) tarfiles = list(map(patchdir.TarFile_FromFileobjs, fileobj_iters)) return patchdir.tarfiles2rop_iter(tarfiles, index)

Если вы не знакомы с Python (я не), вы можете проверить код здесь: http://pep8online.com/ - отступы должны должным образом совпадать.

0
ответ дан 24 July 2018 в 19:56

Это сработало для меня:

1 / Загрузите последнюю версию двуязычной версии (в настоящее время v0.7.14):

http://duplicity.nongnu.org/

2 / Переместить в / usr / local:

% cd /usr/local

3 / Извлечь tar-мяч

% tar -xvf <DuplicityTarBallHome>/duplicity-0.7.14.tar.gz

4 / Переместить в извлеченную директорию

% cd /usr/local/duplicity-0.7.14

5 / Установить версию двуличия:

% python setup.py install

-> Установка должна завершиться без ошибок

6 / Проверить установку последней версии:

% duplicity --version

-> двуличность 0.7.14 [ ! d15]

7 / Наконец, восстановите резервную копию:

% duplicity restore file:<BACKUP_HOME> <DESTINATION_HOME>

-> Файлы правильно восстановлены

0
ответ дан 24 July 2018 в 19:56
  • 1
    Пожалуйста, не отправляйте одинаковые ответы. Если вопросы повторяются, отметьте их вместо них. – terdon♦ 7 November 2017 в 13:19

Я добавлю этот бит информации, так как мой похожий вопрос здесь Ошибка Déjà Dup с ошибкой стека python на Ubuntu 16.04 была отмечена как дубликат (это было не совсем дубликат, я не был пытаясь восстановить резервную копию, я пытался создать резервные копии, хотя ошибка была такой же).

Я не использовал Déjà Dup после того, как я разместил свой вопрос; поскольку он не работал, я отключил расписание. Затем, когда Виктор Дорс также отправил свой ответ на мой вопрос, я попробовал еще раз, не внося никаких изменений, чтобы узнать, не получил ли я ошибку. Дежа Дуп сказал, что он делает полную резервную копию, которая может занять больше времени, но это удалось. Затем я снова включил ежедневное расписание, и инкрементное резервное копирование также прошло вчера. Итак, я думаю, что моя проблема, возможно, была исправлена ​​в некоторых обновлениях Ubuntu. Версия двуличия на моей машине в настоящее время 0.7.06. Поэтому я бы попытался сделать обновление программного обеспечения и посмотреть, устраняет ли это проблему раньше всего.

0
ответ дан 14 August 2018 в 20:43

Другие вопросы по тегам:

Похожие вопросы: