LINUX.ORG.RU

duplicity, распаковать бэкап

 ,


1

2

Моя ситуация точно такая же как в этом сабдже.
backup - Extract duplicity files manually - Ask Ubuntu https://askubuntu.com/questions/473124/extract-duplicity-files-manually

Не получается распаковать бэкап сделанный при помощи duplicity. Делал бекап не я, комп не мой, система уже переустановлена. Нужно извлечь файлы из бэкапа. Просили помочь. Ark не помог, думал что он подхватит многотомный архив.
Набор из 600 файлов по 50мб имеют такой вид

duplicity-full.20140106T111233Z.manifest
duplicity-full-signatures.20140106T111233Z.sigtar.gz
duplicity-full.20140106T111233Z.volxxx.difftar.gz (куча файлов с номерами)
duplicity-full.20140106T111233Z.volxxx.difftar (куча файлов с номерами)
пытался этой командой
duplicity restore file:///path_to_folder_contains_backups/ path_where_to_extract_it/
вылазит ошибка точно такая же как по ссылке выше. Там проблема была с путями.Решилась. Я же перепробовал кучу вариантов, и все ровно вылазит это, пути проверял, три слэша после «file:» точно ставил, пробовал ставить слэши в конце путей, не помогло. Еще непонятка. Когда указываешь конечную папку для восстановления, которая уже создана, пишет «папка существует, не могу перезаписать», по этому к конечному пути приходится дописывать не существующею папку(думал что она создается автоматически)
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
GnuPG passphrase: 
Traceback (most recent call last):
  File "/usr/bin/duplicity", line 1494, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1488, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1337, in main
    do_backup(action)
  File "/usr/bin/duplicity", line 1422, in do_backup
    restore(col_stats)
  File "/usr/bin/duplicity", line 697, in restore
    restore_get_patched_rop_iter(col_stats)):
  File "/usr/bin/duplicity", line 719, in restore_get_patched_rop_iter
    backup_chain = col_stats.get_backup_chain_at_time(time)
  File "/usr/lib/python2.7/dist-packages/duplicity/collections.py", line 952, in get_backup_chain_at_time
    raise CollectionsError("No backup chains found")
CollectionsError: No backup chains found
папка с бэкапом находиться на внешнем винте. Пробовал распаковывать как на внешний винт так и тот что в компе.

зы как еще можно собрать и распаковать бэкап?
ззы на вопрос «GnuPG passphrase:» просто вводил 1111

Deleted

Прочитай описание формата, на сайте есть инструкция по распаковке.

на вопрос «GnuPG passphrase:» просто вводил 1111

Отличная идея.

anonymous ()

Ты все способы распаковывать c ask ubuntu пробовал?
Распаковывал много раз, всегда успешно, просто с restore.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous

Прочитай описание формата, на сайте есть инструкция по распаковке.

я и делал по инструкции

Отличная идея.

а если его нет, то что вводить? Просто жать Энтер без ничего?

Deleted ()
Ответ на: комментарий от anonymous_sama

Ты все способы распаковывать c ask ubuntu пробовал?

c --gio не получается

Распаковывал много раз, всегда успешно, просто с restore.

я же написал просто ресторе не пашет

Deleted ()
Ответ на: комментарий от Deleted

Duplicity по дефолту шифрует бэкап. Очевидно, если бэкап был создан с дефолтными настройками, без знания правильного пароля или его подбора тебя ждет неудача.

lu4nik ★★★ ()
Последнее исправление: lu4nik (всего исправлений: 1 )
Ответ на: комментарий от Deleted

я и делал по инструкции

Вручную делай: cat, tar…

а если его нет, то что вводить?

Если спрашивает, значит есть.

anonymous ()
Ответ на: комментарий от Deleted

Там обычные tar.gz чаще всего, если не были указаны кастомные опции (можно вообще легко прикрутить другую команду для архивирования, например), просто файлы разложены измененные, подробней как раз описано по той ссылке с ask ubuntu. Если было использовано шифрования, то тебе нужен приватный и публичный ключ и пароль, для разблокировки доступа к приватному ключу, в случае если же шифрование не было использовано, то как раз таки будет распаковываться с вводом любого пароля, а вот просто <enter> не пройдет.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous

То есть САТом собрать в один, а потом его разархивировать? А почему Ark не справляется, то есть он только один извлекает, остальные тома не подхватываются. А если САТом то как в терминал вписать 600имен? Нельзя ли как WinRar на первом томе нажать что бы остальные подтянулись?

Deleted ()
Ответ на: комментарий от anonymous_sama

Спасибо! Да там tar.gz. Вроде без шифрования. А есть ли способ извечь все типа как умеет WinRar?

Deleted ()
Ответ на: комментарий от Deleted

Да попробуй поставить duplicity c recommends, врядли конечно поможет, но у меня как-то давно были проблемы из-за этого с duplicity, впрочем там было все очевидно, и просто без одной из рекомендаций не работало копирование по ssh. Ты можешь переименовать архивы и распаковать рекурсивно, но в силу того как организованны файлы, очень желательно, чтобы ты просто починил duplicity. Тем более с ним можно восстанавливать сразу конфиг из резервной копии в нужную директорию и т.д.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

А какой гуи архиватор под убунту это сможет? Так что бы на одном томе нажал и другие подтянулись?

Deleted ()
Ответ на: комментарий от anonymous_sama

хоть тресни, консольная duplicity не видит кусочки и не собирает архив
поставил DejaDup, указал папку с кусками, тоже не находит
если собирать CATом, то на 4гб он останавливается, и если зайти в архив - пишет ошибка
а чем могли этот бэкап делать в убунту?

Deleted ()
Ответ на: комментарий от Deleted

Нет. Можешь выложить архивы, я попробую распаковать. Или можешь поставить актуальные дистрибутив в виртуалку и duplicity и попробовать распаковать там, сам.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

Спасибо. Но там он на 30гиг. А что значит более актуальный? В смысле новее дистр? Там должна быть более новая версия? Она сможет подхватить?
А 7zip под Вынью не сможет распаковать?

Deleted ()
Ответ на: комментарий от Deleted

Распаковать можно с и tar, но распаковать это вcе правильно может только duplicity.

В смысле новее дистр?

Да, например Ubuntu 16.04.x

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

Там комп древний(Athlon900,1gb ram) Ubuntu 9 скрипя работает. Пробовал последний Минт, при запуске графической инсталляции ошибка старта Х11. А такой еще вопрос если не затруднит, какой дистр на такой пк встанет и чтобы свежие компоненты были? Я тут лазил, советуют Puppy или Debian netinstall. Последний Debian netinstall модет заработать на таком железе?

Извиняюсь, достал я вопросами Вас

Deleted ()
Ответ на: комментарий от Deleted

Любой дистрибутив, с легким WM. Можешь поставить Ubuntu с mini.iso, например. Браузер с несколькими вкладками будет тормозить везде. Распаковать, можешь и с live-cd, или/и с другого компьютера.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

А может с путями я что-то путаю? Я беру из свойств папки проводника. Там что-то вроде /media/«набор букв и цифр»/имя папки

Deleted ()
Ответ на: комментарий от anonymous_sama

Минт с xfce не завелся, ошибка старта х11

Deleted ()
Ответ на: комментарий от anonymous_sama

вроде да, при попытке распаковать через гуи архиватором папка там рядом создавалась и что то в ней было. А когда делал через консоль с помощью duplicity не помню, но вроде делал sudo su

Deleted ()
Ответ на: комментарий от anonymous_sama

Я извиняюсь. Тут снова попробовал. Переставил систему. Минимал нетинсталл убунту 16 + lxde. Ползает с большим скрипом на этом атлоне 900, 2003 года. Ну, а по делу.
Через Synaptic поставил duplicity. При установке кроме самой duplicity был отмечен для установки и кусок pythonа. Указал сделать ресторе. Начался вроде бы процесс. Кусочки теперь подхватились, ошибки пока нет старой. Началось кэширование. И тут бац через какое то время ошибка - AssertionError такого вида

  File "/usr/bin/duplicity", line 1412, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1405, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1339, in main
    restore(col_stats)
  File "/usr/bin/duplicity", line 630, in restore
    restore_get_patched_rop_iter(col_stats)):
  File "/usr/lib/python2.7/dist-packages/duplicity/patchdir.py", line 522, in Write_ROPaths
    for ropath in rop_iter:
  File "/usr/lib/python2.7/dist-packages/duplicity/patchdir.py", line 495, in integrate_patch_iters
    final_ropath = patch_seq2ropath( normalize_ps( patch_seq ) )
  File "/usr/lib/python2.7/dist-packages/duplicity/patchdir.py", line 462, in patch_seq2ropath
    assert first.difftype != "diff", patch_seq
AssertionError: [(('home', 'harry', '.apport-ignore.xml') reg)]
Времени небыло разбираться на месте. Но потом нагуглил что это вроде бы баг.
Тут вроде человек как то решил проблему через костыль. Он делал через duplicity --gio, а я просто через duplicity restore.
https://askubuntu.com/questions/270750/deja-dup-restore-error-help-please
Предлагает удалить все файлы и оставить один где есть слово sigtar. Но sigtar вроде бы один всегда создается?
В общем опять непонятно то ли баг, то ли еще что то.

Deleted ()
Ответ на: комментарий от anonymous_sama

Попробовал шаг 4. Вылазит новая ошибка UnicodeDecodeError

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 1401, in do_backup
    sync_archive(decrypt)
  File "/usr/bin/duplicity", line 1139, in sync_archive
    remote_metafiles, ignored, rem_needpass = get_metafiles(remlist)
  File "/usr/bin/duplicity", line 1029, in get_metafiles
    pr = file_naming.parse(fn)
  File "/usr/lib/python2.7/dist-packages/duplicity/file_naming.py", line 400, in parse
    pr = check_inc()
  File "/usr/lib/python2.7/dist-packages/duplicity/file_naming.py", line 340, in check_inc
    t1 = str2time((m1 or m2).group("start_time"), short)
  File "/usr/lib/python2.7/dist-packages/duplicity/file_naming.py", line 290, in str2time
    t = dup_time.genstrtotime(timestr.upper())
  File "/usr/lib/python2.7/dist-packages/duplicity/dup_time.py", line 295, in genstrtotime
    return override_curtime - intstringtoseconds(timestr)
  File "/usr/lib/python2.7/dist-packages/duplicity/dup_time.py", line 203, in intstringtoseconds
    error()
  File "/usr/lib/python2.7/dist-packages/duplicity/dup_time.py", line 194, in error
    raise TimeException(bad_interval_string % interval_string)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
ps это просто какой то пиздец, а не линукс. Проблема на проблеме едет и проблемой подгоняет.

Deleted ()
Ответ на: комментарий от Deleted

Среди файлов были названия не латиницей скорей всего.
Попробуй export LANG="en_US.UTF-8" и export LC_ALL="en_US.UTF-8", перед тем как распаковываешь.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от Deleted

Замечу, ещё пару нюансов.

  • Временный файл duplicity создаёт в /tmp, на котором частенько заканчивается место при распаковке больших по размеру файлов. Параметр --tempdir <path to tmp> спасает.
  • Кроме этого идёт кеширование описания архивов в домашнем каталоге пользователя. Здесь тоже возможен факт нехватки места.
  • Если архив не зашифрован, то логично использовать параметр --no-encryption.[/lis]
Jurik_Phys ★★★★★ ()
Ответ на: комментарий от anonymous_sama

Спасибо! Буду пробовать! Извиняюсь за повышенный тон в отношении Линукса), просто возникают проблемы у меня или не только в освоении)

Deleted ()
Ответ на: комментарий от Jurik_Phys

Спасибо! Кстати да, возможно. Там бэкап на 30гигов. А система сейчас выглядит так
/-20gb-12gb free
/home-18gb-15 free
hdd всего 40gb
Бєкап на внешнем юсб винте 500гб. Я его пытаюсь раскрыть на него же в другую папку. А нельзя ли напрямую сделать рэсторе без кэша, что бы не зависеть от размеров /,/home?

Deleted ()
Ответ на: комментарий от Jurik_Phys

блин, тут прочитал что

--extra-clean
When cleaning up, be more aggressive about saving space. For example, this may delete signature files for old backup chains.
Caution: Without signature files those old backup chains are unrestorable. Do not use --extra-clean unless you know what you’re doing.

See the cleanup argument for more information.
https://github.com/tohuwabohu/puppet-duplicity/issues/30
то есть могут потереться сигнатуры?!

Deleted ()
Ответ на: комментарий от anonymous_sama

Попробуй export LANG=«en_US.UTF-8» и export LC_ALL=«en_US.UTF-8», перед тем как распаковываешь.

тоже самое UnicodeDecodeError
Пробовал под Puppy тоже - UnicodeDecodeError
Теперь Дебинан8 нетинсталл - AssertionError
В общем:
Ubuntu16 и Puppy выдают UnicodeDecodeError в них duplicity 0.7
Дебинан8 - AssertionError в нем duplicity 0.6

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.