Восстановление резервных копий провальная Ubuntu 16.04

Я изо всех сил пытаюсь восстановить резервные копии от более старой установки 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

3 ответа

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

Решение: Я смог пройти мимо этого, вставив проверку ключа для объекта volume_name_dict .

] Новая строка: if vol_num в 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
ответ дан 28 September 2019 в 17:42

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

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

http://duplicity.nongnu.org/

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

% cd / usr / local

3 / Извлечь tar-файл

% tar -xvf /duplicity-0.7.14.tar.gz

4/ Перейти в извлеченный каталог

% cd / usr / local /duplicity-0.7.14

5/ Установите дублирующую версию:

% python setup.py install

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

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

% duplicity --version

-> duplicity 0.7.14

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

% duplicity restore file:

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

0
ответ дан 28 September 2019 в 17:42

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

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

0
ответ дан 28 September 2019 в 17:42

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

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