GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ripristino di backup non riuscito Ubuntu 16.04?

Sto lottando per ripristinare i backup da una precedente installazione di Ubuntu a una nuova installazione su Ubuntu 16.04. Ottengo il seguente errore durante il tentativo di ripristino:

Failed with an unknown error Seguito da:

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

Il backup è stato completato correttamente ma non riesco a ripristinarlo.

Grazie in anticipo!

Risposta accettata:

Modifica: Dichiarazione di non responsabilità:non ho molta esperienza con Python o il codice della duplicità, quindi non posso dire se questa modifica causerà o meno effetti dannosi. Per quanto mi riguarda, sono stato in grado di completare il ripristino aggiungendo la riga di codice di seguito.

Soluzione: Sono stato in grado di superare questo inserendo un controllo chiave per il volume_name_dict oggetto.

Nuova riga:if vol_num in backup_set.volume_name_dict.keys():

Nella duplicità 0.7.06, puoi sostituire questo metodo alla riga 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 non hai familiarità con Python (non lo sono) puoi convalidare il codice qui:http://pep8online.com/ – i rientri devono essere allineati correttamente.


Ubuntu
  1. Come aggiungere un file di scambio su Ubuntu

  2. Scarica un file su Ubuntu utilizzando la riga di comando sul sistema Ubuntu 20.04

  3. Come installare g++ su Ubuntu

  4. VIM:come andare alla riga esatta su Ubuntu

  5. Alternativa alla riga di comando SSH da Ubuntu

Copia di un file contemporaneamente in più posizioni tramite la riga di comando di Ubuntu

Converti i nomi dei file in minuscolo tramite la riga di comando di Ubuntu

Rimozione batch di spazi nei nomi di file tramite la riga di comando di Ubuntu

Come scaricare un file su Ubuntu Linux usando la riga di comando

Ripristino dei backup dei file in cPanel

Come pianificare i backup di file su Google Drive su Ubuntu