GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wiederherstellen von Backups schlägt Ubuntu 16.04 fehl?

Ich habe Probleme, Backups von einer älteren Installation von Ubuntu auf einer neuen Installation auf Ubuntu 16.04 wiederherzustellen. Beim Wiederherstellungsversuch erhalte ich die folgende Fehlermeldung:

Failed with an unknown error Gefolgt von:

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

Die Sicherung wurde erfolgreich abgeschlossen, aber ich kann sie nicht wiederherstellen.

Vielen Dank im Voraus!

Akzeptierte Antwort:

Bearbeiten: Haftungsausschluss – Ich habe nicht viel Erfahrung mit Python- oder Duplicity-Code, daher kann ich nicht sagen, ob diese Änderung nachteilige Auswirkungen haben wird oder nicht. Für mich konnte ich meine Wiederherstellung abschließen, indem ich die folgende Codezeile hinzufügte.

Lösung: Ich konnte dies umgehen, indem ich eine Schlüsselüberprüfung für volume_name_dict einfügte Objekt.

Neue Zeile:if vol_num in backup_set.volume_name_dict.keys():

In Duplicity 0.7.06 können Sie diese Methode in Zeile 752 ersetzen:

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)

Wenn Sie mit Python nicht vertraut sind (ich nicht), können Sie den Code hier validieren:http://pep8online.com/ – die Einrückungen müssen richtig ausgerichtet sein.


Ubuntu
  1. So fügen Sie eine Auslagerungsdatei unter Ubuntu hinzu

  2. Laden Sie eine Datei auf Ubuntu über die Befehlszeile auf einem Ubuntu 20.04-System herunter

  3. So installieren Sie g ++ unter Ubuntu

  4. VIM:wie man unter Ubuntu zur genauen Zeile geht

  5. Alternative zur SSH-Befehlszeile von Ubuntu

Kopieren einer Datei gleichzeitig an mehrere Speicherorte über die Ubuntu-Befehlszeile

Konvertieren Sie Dateinamen über die Ubuntu-Befehlszeile in Kleinbuchstaben

Batch-Entfernung von Leerzeichen in Dateinamen über die Ubuntu-Befehlszeile

So laden Sie eine Datei unter Ubuntu Linux über die Befehlszeile herunter

Wiederherstellen von Dateisicherungen in cPanel

So planen Sie Dateisicherungen auf Google Drive unter Ubuntu