Estou usando a duplicidade 0.7.06 para fazer backup e 0.7.17 para restaurar um backup de duplicidade. Mas estou recebendo o erro "Nenhuma cadeia de backup encontrada" ao tentar restaurar um diretório a partir dele.
Eu não tenho certeza do que esse erro significa embora.
O backup é feito assim (e não há erros disso):
duplicity --no-encryption --full-if-older-than 10D /path/to/dir s3+http://my-s3-bucket/duplicity/dir
E posso ver arquivos de duplicidade se os listar:
~$ s3cmd ls s3://my-s3-bucket/duplicity/dir/
2019-05-12 15:51 19505 s3://my-s3-bucket/duplicity/dir/duplicity-full-signatures.20190512T155147Z.sigtar.gz
2019-05-12 15:51 724 s3://my-s3-bucket/duplicity/dir/duplicity-full.20190512T155147Z.manifest
2019-05-12 15:51 728333 s3://my-s3-bucket/duplicity/dir/duplicity-full.20190512T155147Z.vol1.difftar.gz
Estou tentando restaurar assim:
duplicity --file-to-restore path/to/dir s3+http://my-s3-bucket/duplicity /home/restored/dir
O erro que estou recebendo é:
duplicity 0.7.17 (February 26, 2018)
Args: /usr/bin/duplicity --file-to-restore path/to/dir s3+http://my-s3-bucket/duplicity /home/restored/dir
Linux machinename 4.15.0-48-generic #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 x86_64 x86_64
/usr/bin/python2 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0]
================================================================================
Using temporary directory /tmp/duplicity-Zu29z3-tempdir
Temp has 30699757568 available, backup will use approx 272629760.
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
Traceback (innermost last):
File "/usr/bin/duplicity", line 1555, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1541, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1393, in main
do_backup(action)
File "/usr/bin/duplicity", line 1472, in do_backup
restore(col_stats)
File "/usr/bin/duplicity", line 728, in restore
restore_get_patched_rop_iter(col_stats)):
File "/usr/bin/duplicity", line 750, 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 974, in get_backup_chain_at_time
raise CollectionsError("No backup chains found")
CollectionsError: No backup chains found
seu comando de restauração de cima
falta '/dir' no final do s3:// url. se ele não encontrar seus backups depois de adicioná-lo, sugiro entrar na lista de discussão de duplicidade e publicá-lo lá para que possamos tentar encontrar seu problema com mais detalhes.
..ede/duply.net
Seguindo uma pista em uma resposta do ede, modifiquei minha linha de restauração para adicionar o nome do diretório que eu queria restaurar no final do s3:// url:
s3+ http://my-s3-bucket/duplicity/ dir /home/restored
Isso então encontrou a cadeia de backup, mas disse que não conseguiu encontrar "dir" nela.
Tentei então remover o
--file-to-restore
switch para fazer o comando da seguinte forma:Isso funcionou.
Como um aparte, mesmo quando li a página de manual e olhei alguns exemplos , acho difícil encontrar uma maneira de lembrar como restaurar corretamente os arquivos de um arquivo de duplicidade. Se alguém tiver uma maneira legal de explicar como a duplicidade funciona em relação a caminhos e cadeias de arquivos, ficaria grato.