Restaurando backups com falha no Ubuntu 16.04

1

Eu estou lutando para restaurar backups de uma instalação mais antiga do Ubuntu para uma nova instalação no Ubuntu 16.04. Eu recebo o seguinte erro ao tentar restaurar:

Failed with an unknown error Seguido por:

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

O backup foi concluído com êxito, mas não consigo restaurá-lo.

Obrigado antecipadamente!

    
por Ddt 06.08.2016 / 14:59

3 respostas

0

Editar: Aviso Legal - Eu não tenho muita experiência com o código do Python ou duplicidade, então não posso dizer se esta modificação irá ou não causar efeitos prejudiciais. Para mim, consegui concluir minha restauração adicionando a linha de código abaixo.

Solução: consegui passar após inserir uma verificação de chave para o objeto volume_name_dict .

Nova linha: if vol_num in backup_set.volume_name_dict.keys():

Na duplicidade 0.7.06, você pode substituir este método na linha 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)

Se você não estiver familiarizado com o Python (não estou), pode validar o código aqui: link - os recuos devem estar alinhados corretamente.

    
por TylersSN 07.10.2016 / 16:48
0

Isso funcionou para mim:

1 / Faça o download da última versão de duplicidade de estable (atualmente v0.7.14):

link

2 / Mover para / usr / local:

% cd /usr/local

3 / Extraia a bola de alcatrão

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

4 / Mover para o diretório extraído

% cd /usr/local/duplicity-0.7.14

5 / Instale a versão da duplicidade:

% python setup.py install

- > A instalação deve terminar sem erros

6 / Verifique a instalação da última versão:

% duplicity --version

- > duplicidade 0.7.14

7 / Finalmente restaure o backup:

% duplicity restore file:<BACKUP_HOME> <DESTINATION_HOME>

- > Os arquivos foram restaurados corretamente

    
por Victor Doors 05.11.2017 / 10:49
0

Eu adicionarei este bit de informação desde a minha pergunta similar aqui Backup Déjà Dup falhando com rastreamento de pilha python no Ubuntu 16.04 foi marcado como duplicado (não era realmente uma duplicata, eu estava não tentando restaurar um backup, eu estava tentando criar backups, embora o erro fosse o mesmo).

Eu não tinha usado o Déjà Dup depois que postei minha pergunta; desde que não estava funcionando eu desliguei o horário. Então, quando Victor Doors postou sua resposta à minha pergunta também, tentei novamente sem fazer nenhuma alteração para ver se eu ainda estava recebendo o erro. Déjà Dup disse que estava fazendo um backup completo que pode levar mais tempo, mas conseguiu. Em seguida, reativei a programação diária e o backup incremental também foi bem-sucedido na noite passada. Então, acho que meu problema pode ter sido corrigido em alguma atualização do Ubuntu. A versão de duplicidade na minha máquina é atualmente 0.7.06. Então, eu tentaria fazer uma atualização de software e ver se isso resolve o problema antes de qualquer outra coisa.

    
por Jim 07.11.2017 / 14:25