GNU/Linux >> Tutoriels Linux >  >> Ubuntu

La restauration des sauvegardes échoue Ubuntu 16.04 ?

J'ai du mal à restaurer les sauvegardes d'une ancienne installation d'Ubuntu vers une nouvelle installation sur Ubuntu 16.04. J'obtiens l'erreur suivante lors de la tentative de restauration :

Failed with an unknown error Suivi de :

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

La sauvegarde s'est terminée avec succès mais je n'arrive pas à la restaurer.

Merci d'avance !

Réponse acceptée :

Modifier : Avis de non-responsabilité - Je n'ai pas beaucoup d'expérience avec Python ou le code de la duplicité, donc je ne peux pas dire si cette modification causera ou non des effets néfastes. Pour ma part, j'ai pu terminer ma restauration en ajoutant la ligne de code ci-dessous.

Solution : J'ai pu dépasser cela en insérant une vérification de clé pour le volume_name_dict objet.

Nouvelle ligne :if vol_num in backup_set.volume_name_dict.keys():

En duplicité 0.7.06, vous pouvez remplacer cette méthode à la ligne 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)

Si vous n'êtes pas familier avec Python (je ne le suis pas), vous pouvez valider le code ici :http://pep8online.com/ - les indentations doivent s'aligner correctement.


Ubuntu
  1. Comment ajouter un fichier d'échange sur Ubuntu

  2. Télécharger un fichier sur Ubuntu à l'aide de la ligne de commande sur le système Ubuntu 20.04

  3. Comment installer g ++ sur Ubuntu

  4. VIM :comment aller à la ligne exacte sur Ubuntu

  5. Alternative à la ligne de commande SSH d'Ubuntu

Copier un fichier simultanément vers plusieurs emplacements via la ligne de commande Ubuntu

Convertir les noms de fichiers en minuscules via la ligne de commande Ubuntu

Suppression par lots des espaces dans les noms de fichiers via la ligne de commande Ubuntu

Comment télécharger un fichier sur Ubuntu Linux à l'aide de la ligne de commande

Restauration des sauvegardes de fichiers dans cPanel

Comment planifier des sauvegardes de fichiers sur Google Drive sur Ubuntu