Extrai arquivos de duplicidade manualmente

6

Eu perdi o drive, e o Ubuntu OS instalado nele, a partir do qual eu criei um backup usando o Duplicity, e não sei como restaurar os arquivos arquivados que ainda mantenho em outro drive. Todos eles seguem estas 4 notações

duplicity-full.20140106T111233Z.manifest
duplicity-full-signatures.20140106T111233Z.sigtar.gz
duplicity-full.20140106T111233Z.volxxx.difftar.gz (multiple volumes)
duplicity-full.20140106T111233Z.volxxx.difftar (multiple volumes)

Há dados importantes que preciso recuperar. Há algo que eu possa fazer? Seria o suficiente para usar o gzip? E se sim, como eu poderia extraí-los facilmente?

EDIT 1 Tentando suas sugestões, com as opções restore e the --gio, recebo este texto:

duplicity restore file://media/ubuntu/Toshiba\ HDD/BACKUPS/Documents/ /media/ubuntu/9fb63c8e-ecb5-4c55-b4e0-282e7b4a82ff/tmp/docs/
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

/ media / ubuntu / Toshiba \ HDD / BACKUPS / Documents / é onde estão todos os arquivos de duplicidade e / media / ubuntu / 9fb63c8e-ecb5-4c55-b4e0-282e7b4a82ff / tmp / docs / uma pasta de destino temporária para a qual quero restaurar os arquivos.

EDIT 2 Corrigida a barra faltante no arquivo: // media .... Agora eu recebo os arquivos restaurados, mas não exatamente o que eu esperava. Há muitos arquivos faltando (até 24 GB!)

root@ubuntu:/media/ubuntu/Toshiba HDD/BACKUPS/Documents# ls -la /tmp/docs/home/luis/
total 4176
drwx------ 16 root root    1000 Jun 30 19:13 .
drwx------  3 root root      60 Jun 30 19:13 ..
drwx------  3 1000 1000      60 Oct 23  2013 .activestate
drwxr-xr-x  2 1000 1000      60 Oct 23  2013 .ActiveState
drwx------  3 1000 1000      60 Dec 28  2012 .adobe
-rw-------  1 1000 1000   32120 Jan  4 12:56 .bash_history
-rw-r--r--  1 1000 1000     220 Dec 28  2012 .bash_logout
-rw-r--r--  1 1000 1000    3637 Dec 28  2012 .bashrc
drwx------  3 1000 1000      60 Jan  3 14:01 .cache
drwxr-xr-x  3 1000 1000      60 Nov 16  2013 .cddb
-rw-rw-r--  1 1000 1000     740 Jan 10  2013 .cola
drwx------  3 1000 1000      60 Dec 29  2012 .compiz
drwxrwxr-x  3 1000 1000      80 Oct  1  2013 .composer
drwx------ 46 1000 1000    1020 Dec  8  2013 .config
drwx------  3 1000 1000      60 Dec 28  2012 .dbus
-rw-r--r--  1 1000 1000      25 Jul 13  2013 .dmrc
drwx------  3 1000 1000     380 Jan  6 10:31 .dropbox
drwxr-xr-x  6 1000 1000    1660 Dec 17  2013 .dropbox-dist
drwx------  3 root root      60 Jun 30 19:13 .eclipse
-rw-------  1 1000 1000   50282 Jan  6 10:29 .ICEauthority
drwxrwxr-x 14 1000 1000     340 Dec  7  2013 .PlayOnLinux
-rw-r--r--  1 root root 2077491 Nov 23  2013 .Soulseek.1385165090491
-rw-r--r--  1 root root 2076644 Nov 23  2013 .Soulseek.1385166430938
-rw-r--r--  1 1000 1000    9986 Dec 30 20:02 .Soulseek.1388433748295
drwxrwxr-x  2 1000 1000      60 Oct 13  2013 .SyncWall
-rw-------  1 1000 1000     109 Jan  6 10:29 .Xauthority
-rw-rw-r--  1 1000 1000       0 Jul 29  2013 .Xauthority.25Y20W
-rw-rw-r--  1 1000 1000       0 Jul 13  2013 .Xauthority.7K14ZW
-rw-rw-r--  1 1000 1000       0 Jul  7  2013 .Xauthority.7K7SZW
-rw-rw-r--  1 1000 1000       0 Jul 13  2013 .Xauthority.9X1E0W
-rw-rw-r--  1 1000 1000       0 Sep  1  2013 .Xauthority.A3D52W
-rw-rw-r--  1 1000 1000       0 Sep  1  2013 .Xauthority.CEUV2W
-rw-rw-r--  1 1000 1000       0 Jul 27  2013 .Xauthority.CP7Q0W
-rw-rw-r--  1 1000 1000       0 Sep  8  2013 .Xauthority.E1ET2W
-rw-rw-r--  1 1000 1000       0 Aug 26  2013 .Xauthority.E32K2W
-rw-rw-r--  1 1000 1000       0 Sep 14  2013 .Xauthority.EKK92W
-rw-rw-r--  1 1000 1000       0 Jul 12  2013 .Xauthority.F4QRZW
-rw-rw-r--  1 1000 1000       0 Jul 25  2013 .Xauthority.ISVZ0W
-rw-rw-r--  1 1000 1000       0 Jul 11  2013 .Xauthority.JU3UZW
-rw-rw-r--  1 1000 1000       0 Aug 31  2013 .Xauthority.M30S2W
-rw-rw-r--  1 1000 1000       0 Aug  1  2013 .Xauthority.M3H20W
-rw-rw-r--  1 1000 1000       0 Sep  9  2013 .Xauthority.MKIN2W
-rw-rw-r--  1 1000 1000       0 Aug 28  2013 .Xauthority.RWHB2W
-rw-rw-r--  1 1000 1000       0 Jul 15  2013 .Xauthority.SN85ZW
-rw-rw-r--  1 1000 1000       0 Sep 15  2013 .Xauthority.T22C3W
-rw-rw-r--  1 1000 1000       0 Jul 14  2013 .Xauthority.T6CB0W
-rw-rw-r--  1 1000 1000       0 Jul 31  2013 .Xauthority.VF7Q0W
-rw-rw-r--  1 1000 1000       0 Sep  9  2013 .Xauthority.WGEX2W
-rw-rw-r--  1 1000 1000       0 Aug 31  2013 .Xauthority.WZR52W
-rw-rw-r--  1 1000 1000       0 Jul 25  2013 .Xauthority.YQIR0W

O mais estranho é, além de todos os arquivos que começam com um ponto, que eu não posso navegar pelos diretórios home / luis com o Nautilus, que na verdade eram onde todos os meus dados de backup estavam.

    
por Luis Martin 27.05.2014 / 22:52

3 respostas

13

  1. Use duplicity para extraí-lo:

    duplicity restore file:///path_to_folder_contains_backups/ path_where_to_extract_it/
    
  2. Digite a senha do GnuPG, Pressione Enter

Por padrão, o Duplicity restaura o último backup (comparando o tempo) na pasta de origem, mesmo que não seja o backup da mesma pasta. Se você tiver vários backups para pastas diferentes ou quiser um horário específico da mesma pasta, use o exemplo da opção --time :

duplicity restore --time 20140106T111233Z file:///path_to_folder_contains_backups/ path_where_to_extract_it/

Não é possível ver os arquivos que você está procurando, tente:

  1. Crie uma função que liste todos os arquivos contidos em todos os backups completos / completos disponíveis na pasta de origem:

    ldup () {
        for f in $(ls $1/duplicity-*.manifest.gpg); do
            echo "========================================================================"; 
            echo $f;
            n=$(basename $f .manifest.gpg);
            prefix=$(echo $n | awk 'BEGIN { FS = "." } ;{ print $1 }');
            if [[ "$prefix" == "duplicity-full" ]]; then
                t=$(echo $n | awk 'BEGIN { FS = "." } ;{ print $2 }');
            else
                t=$(echo $n | awk 'BEGIN { FS = "." } ;{ print $4 }');
            fi;
            echo -e "Creation time:\t" $t;
            echo "------------------------------------------------------------------------";
            duplicity list-current-files --time $t file://$1/ | grep "$2";
        done;
    }
    
  2. Para listar todos os arquivos (nota sem cauda / ):

    ldup /path_to_folder_contains_backups
    
  3. pesquise um padrão nos nomes dos arquivos:

    ldup /path_to_folder_contains_backups pattern
    

Referência: man duplicity

    
por user.dz 21.06.2014 / 20:37
6

Primeiro, tente restaurar com duplicidade.
duplicity --gio file:///media/backup /tmp/restore

Existem algumas etapas razoavelmente detalhadas (e principalmente corretas) aqui .

Detalhes principais

O ponto principal é descompactar todos os arquivos duplicity-full.*.difftar.gz no mesmo local, para que você tenha apenas dois diretórios snapshot/ e multivol_snapshot/ .

Se o seu arquivo estiver em snapshot/ , você está pronto. Caso contrário, localize o diretório em multivol_snapshot/ no caminho onde seu arquivo costumava estar: você precisa unir todos os arquivos nesse diretório para recriar o arquivo original. Os arquivos são numerados e podem ser unidos usando o comando cat . Dependendo do tamanho do original, pode haver muitas partes.

Problema com as instruções originais

As rotas vinculadas acima sugerem o uso de cat * > rescued-file . Infelizmente esta abordagem simples falha se você tiver mais de 9 partes. Como * se expande em ordem de dicionário, não em ordem numérica, 10 seria listado antes de 2 e o arquivo seria reconstruído na ordem errada.

Solução alternativa

Uma abordagem simples é lembrar que a ordem do dicionário funciona quando os números são do mesmo tamanho e que ? corresponde a um único caractere. Portanto, se seu maior arquivo tiver três dígitos, você poderá inserir manualmente:

cat ? ?? ??? > rescued-file

Adicione ou remova ? padrões conforme necessário, dependendo do maior número de arquivos.

Script

Se você tem muitos arquivos para recuperar e não gosta de escrever isso para todos eles, você pode preferir usar um script como este. Ele lista o diretório que contém cada arquivo, remove duplicatas da lista e, em seguida, vai para cada diretório e cria um arquivo content dos fragmentos lá. ( spacer é apenas para fazer $1 funcionar.)

find multivol_snapshot/ -type f -printf '%h
cat ? ?? ??? > rescued-file
' | \ sort -uz | \ xargs -0 -n 1 sh -c 'cd "$1" ; cat $(ls | sort -n) > content' spacer

Agora você só precisa adicionar /content ao final de qualquer nome de arquivo que estava procurando e deverá encontrá-lo.

Limitações

Isso não restaura nenhuma das permissões ou propriedade de arquivos originais. Ele também não lida com backups incrementais, mas as instruções vinculadas também atingem um pouco um beco sem saída neste ponto - eles apenas sugerem usar rdiff 'para juntar os arquivos' e encaminhar o leitor para man rdiff .

fonte: SF SE < br> aqui você pode encontrar um programa java para facilitar a restauração de backup complicado.

    
por totti 25.06.2014 / 11:21
0

O Déjà Dup usa um formato opaco para os arquivos armazenados em seu local de backup. Você deve usar o Déjà Dup ou outra ferramenta baseada em duplicidade para restaurar seus arquivos (consulte este guia de restauração ).

    
por totti 25.06.2014 / 11:29