Que tal fazer o download do arquivo necessário e, em seguida, fazer assim: duplicidade scp: //[email protected]//usr/backup restored_dir (exemplo do site oficial)
Eu tenho um conjunto de arquivos no meu servidor gerado por um software de duplicidade:
O backup foi feito sem criptografia.
Meu hoster atual não tem duplicidade em seu servidor e não quer instalá-lo. Como posso descompactar esses arquivos usando o acesso SSH remoto? Talvez haja algum script disponível para fazer isso?
Que tal fazer o download do arquivo necessário e, em seguida, fazer assim: duplicidade scp: //[email protected]//usr/backup restored_dir (exemplo do site oficial)
No caso de alguém mais se deparar com isso (como acabei de fazer), há 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 arquivo.
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 '%hcat ? ?? ??? > 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 beco sem saída neste ponto - eles apenas sugerem usar rdiff
'para juntar os arquivos' e encaminhar o leitor para man rdiff
.
Você pode tentar descompactar esses arquivos e copiar os arquivos necessários. Eu não sei como ele backup de arquivos, mas eu acho que copiar arquivos para o diretório e gzip (ou tar.gz)
No seu caso, eu acho, é melhor usar software de backup (ou script) que pode ser simplesmente extraído. Você pode ver por backuppc, flaxbackup (eu não sei se vai funcionar em seu host ou não, se é vps (ou vds), mas se é apenas hospedagem compartilhada não vai).