GNU/Linux >> Belajar Linux >  >> Ubuntu

Memulihkan Cadangan Gagal Ubuntu 16.04?

Saya berjuang untuk memulihkan cadangan dari instalasi Ubuntu yang lebih lama ke instalasi baru di Ubuntu 16.04. Saya mendapatkan kesalahan berikut saat mencoba memulihkan:

Failed with an unknown error Diikuti oleh:

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

Pencadangan berhasil diselesaikan tetapi saya tidak dapat memulihkannya.

Terima kasih sebelumnya!

Jawaban yang Diterima:

Sunting: Penafian – Saya tidak punya banyak pengalaman dengan Python atau kode duplikat jadi saya tidak bisa mengatakan apakah modifikasi ini akan atau tidak akan menyebabkan efek yang merugikan. Bagi saya, saya dapat menyelesaikan pemulihan saya dengan menambahkan baris kode di bawah ini.

Solusi: Saya dapat melewati ini dengan memasukkan pemeriksaan kunci untuk volume_name_dict objek.

Baris baru:if vol_num in backup_set.volume_name_dict.keys():

Dalam duplicity 0.7.06, Anda dapat mengganti metode ini pada baris 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)

Jika Anda tidak terbiasa dengan Python (saya tidak), Anda dapat memvalidasi kode di sini:http://pep8online.com/ – lekukan harus sejajar dengan benar.


Ubuntu
  1. Cara Menambahkan File Swap Di Ubuntu

  2. Unduh File di Ubuntu Menggunakan Command Line di sistem Ubuntu 20.04

  3. Cara menginstal g ++ di Ubuntu

  1. Cara Mengubah Nama Host di Ubuntu 18.04

  2. VIM:cara menuju ke baris yang tepat di Ubuntu

  3. Alternatif untuk baris perintah SSH dari Ubuntu

  1. Cara menghapus file di Ubuntu Linux

  2. Cara Menjadwalkan Pencadangan File ke Google Drive di Ubuntu

  3. Cara mudah membuka file PDF dari baris perintah di Ubuntu