bup-restore - extrair arquivos de um conjunto de backup
bup restore [-r host:[path]] [--outdir=outdir] [--exclude-rx pattern] [--exclude-rx-from filename] [-v] [-q] <paths...>
bup restore extrai arquivos de um conjunto de backup (criado com bup-save(1)) para o sistema de arquivos local.
Os caminhos especificados estão no formato /branch/revision/some/where. Os componentes do caminho são os seguintes:
o nome do conjunto de backup do qual restaurar; isso corresponde à opção --name (-n) para salvar bup.
a revisão do conjunto de backup a ser restaurado. A revisão latest é sempre o backup mais recente na ramificação especificada. Você pode descobrir outras revisões usando bup ls /branch.
o caminho salvo anteriormente (após qualquer remoção/enxerto) que você deseja restaurar. Por exemplo, etc/passwd.
Se some/where nomear um diretório, bup restore restaurará esse diretório e então restaurará recursivamente seu conteúdo.
Se algum/onde nomear um diretório e terminar com uma barra (ou seja, caminho/para/dir/), bup restore irá restaurar os filhos desse diretório diretamente para o diretório atual (ou o --outdir ). Se some/where não terminar com uma barra, os filhos serão restaurados para um subdiretório do diretório atual.
Se some/where nomear um diretório e terminar em `/.' (ou seja, caminho/para/dir/.), bup restore fará exatamente o que faria para caminho/para/dir e, em seguida, restaurará os metadados de dir para o diretório atual (ou o --outdir). Consulte a seção EXEMPLOS.
Como um caso especial, se some/where nomear o link simbólico “mais recente”, por exemplo bup restore /foo/latest, então bup irá agir exatamente como se o salvamento que “latest” aponta tivesse sido especificado, e restaurar isso, ao invés do link simbólico “latest” em si.
Sempre que os metadados do caminho estiverem disponíveis, o bup restore tentará restaurá-los. Ao restaurar a propriedade, o bup implementa a semântica do tipo tar/rsync. Ele normalmente preferirá nomes de usuários e grupos a uids e gids quando estiverem disponíveis, mas não tentará restaurar o usuário, a menos que seja executado como root, e retornará ao uid ou gid numérico sempre que os metadados contiverem um usuário ou nome do grupo que não existe no sistema atual. O uso de nomes de usuários e grupos pode ser desativado via --numeric-ids (o que pode ser importante ao restaurar um chroot, por exemplo) e, como um caso especial, um uid ou gid de 0 nunca será remapeado por nome. Além disso, alguns sistemas não permitem definir um uid/gid que não corresponda a um usuário/grupo conhecido. Nesses sistemas, o bup registrará um erro para cada caminho relevante.
As opções --map-user, --map-group, --map-uid, --map-gid podem ser usadas para ajustar as informações de propriedade disponíveis antes que qualquer uma das regras acima seja aplicada, mas observe que devido a essas regras , --map-uid e --map-gid não terão efeito sempre que um caminho tiver um usuário ou grupo válido. Nesses casos, --numeric-ids deve ser especificado ou o usuário ou grupo deve ser limpo por um --map-user foo= ou --map-group foo= adequado.
Hardlinks também serão restaurados quando possível, mas pelo menos atualmente, nenhum link será feito para destinos fora da árvore de restauração e, se a árvore de restauração abranger um arranjo diferente de sistemas de arquivos da árvore salva, alguns conjuntos de hardlinks podem não ser completamente restaurados.
Observe também que alterar os conjuntos de hardlink no disco entre indexar e salvar pode produzir resultados inesperados. Com a implementação atual, o bup tentará recriar qualquer conjunto de hardlink dado que existia no momento do índice, mesmo que todos os arquivos no conjunto ainda não estivessem com link físico (mas fossem idênticos) no momento do salvamento.
Observe que durante o processo de restauração, o acesso aos dados na árvore de restauração pode ser mais permissivo do que na fonte original. A menos que a segurança seja irrelevante, você deve restaurar para um subdiretório privado e, em seguida, mover a árvore resultante para sua posição final. Veja a seção EXEMPLOS para uma demonstração.
restaurar o conjunto de backup do servidor remoto fornecido. Se caminho for omitido, usa o caminho padrão no servidor remoto (você ainda precisa incluir o `:'). A conexão com o servidor remoto é feita com SSH. Se você quiser especificar qual porta, usuário ou chave privada usar para a conexão SSH, recomendamos que você use o arquivo ~/.ssh/config.
crie e mude para o diretório outdir antes de extrair os arquivos.
restaurar IDs numéricos (usuário, grupo, etc.) em vez de nomes.
exclua qualquer padrão correspondente ao caminho, que deve ser uma expressão regular do Python (http://docs.python.org/library/re.html). O padrão será comparado com o caminho completo enraizado no topo da árvore de restauração, sem ancoragem, então “x/y” corresponderá a “boi/jarda” ou “caixa/jardas”. Para excluir o conteúdo de /tmp, mas não o diretório em si, use “^/tmp/. ”. (pode ser especificado mais de uma vez)
Observe que a raiz da árvore de restauração (que corresponde a `^/') é o topo da árvore de arquivamento que está sendo restaurada e não tem nada a ver com o destino do sistema de arquivos. Dado “restore ... /foo/latest/etc/ ”, o padrão `^/passwd$' corresponderia se um arquivo chamado passwd tivesse sido salvo como `/foo/latest/etc/passwd'.
Exemplos:
exclua qualquer arquivo chamado foo
excluir qualquer diretório chamado foo
excluir o conteúdo de qualquer diretório chamado foo
excluir o conteúdo de /tmp no nível raiz, mas não o próprio /tmp
read –exclude-rx patterns from filename, um padrão por linha (pode ser repetido). Ignore linhas completamente vazias.
gravar dados de saída esparsamente quando razoável. Atualmente, razoável significa apenas “pelo menos sempre que houver 512 ou mais zeros consecutivos”.
para cada caminho, restaure o nome de usuário antigo (salvo) como novo. Especificar “ ” para novo limpará o usuário. Por exemplo, “–map-user foo= ” permitirá que o uid entre em vigor para qualquer caminho que originalmente tenha um usuário “foo ”, a menos que seja revogado por uma especificação “–map-user foo=... ” subsequente. Consulte a DESCRIÇÃO acima para obter mais informações.
para cada caminho, restaure o nome do grupo antigo (salvo) como novo. Especificar “ ” para novo limpará o grupo. Por exemplo, “–map-group foo= ” permitirá que o gid entre em vigor para qualquer caminho que originalmente tenha um grupo de “foo ”, a menos que seja revogado por uma especificação “–map-group foo=... ” subsequente. Consulte a DESCRIÇÃO acima para obter mais informações.
para cada caminho, restaure o uid antigo (salvo) como novo, a menos que seja revogado por um “–map-uid antigo=... ”opção. Observe que o uid só será relevante para caminhos sem usuário. Consulte a DESCRIÇÃO acima para obter mais informações.
para cada caminho, restaure o gid antigo (salvo) como novo, a menos que seja revogado por um “–map-gid antigo=... ”opção. Observe que o gid só será relevante para caminhos sem usuário. Consulte a DESCRIÇÃO acima para obter mais informações.
aumentar a saída de registro. Dado uma vez, imprime todos os diretórios à medida que são restaurados; dado duas vezes, imprime todos os arquivos e diretórios.
suprimir a saída, incluindo o medidor de progresso. Normalmente, se stderr for um tty, um medidor de progresso exibirá o número total de arquivos restaurados.
Crie um conjunto de backup de teste simples:
$ bup index -u /etc
$ bup save -n mybackup /etc/passwd /etc/profileRestaurar apenas um arquivo:
$ bup restore /mybackup/latest/etc/passwd
Restoring: 1, done.
$ ls -l passwd
-rw-r--r-- 1 apenwarr apenwarr 1478 2010-09-08 03:06 passwdRestaurar etc para testar (sem barra à direita):
$ bup restore -C test /mybackup/latest/etc
Restoring: 3, done.
$ find test
test
test/etc
test/etc/passwd
test/etc/profileRestaure o conteúdo de etc para testar (barra final):
$ bup restore -C test /mybackup/latest/etc/
Restoring: 2, done.
$ find test
test
test/passwd
test/profileRestaure o conteúdo de etc e metadados de etc para testar (à direita “/.”):
$ bup restore -C test /mybackup/latest/etc/.
Restoring: 2, done.
# At this point test and etc's metadata will match.
$ find test
test
test/passwd
test/profileRestaurar uma árvore sem risco de acesso não autorizado:
# mkdir --mode 0700 restore-tmp
# bup restore -C restore-tmp /somebackup/latest/foo
Restoring: 42, done.
# mv restore-tmp/foo somewhere
# rmdir restore-tmpRestaurar uma árvore, remapear um usuário e grupo antigos para um novo usuário e grupo:
# ls -l /original/y
-rw-r----- 1 foo baz 3610 Nov 4 11:31 y
# bup restore -C dest --map-user foo=bar --map-group baz=bax /x/latest/y
Restoring: 42, done.
# ls -l dest/y
-rw-r----- 1 bar bax 3610 Nov 4 11:31 yRestaurar uma árvore, remapear um uid antigo para um novo uid. Observe que o usuário antigo deve ser apagado para que o bup não o prefira ao uid:
# ls -l /original/y
-rw-r----- 1 foo baz 3610 Nov 4 11:31 y
# ls -ln /original/y
-rw-r----- 1 1000 1007 3610 Nov 4 11:31 y
# bup restore -C dest --map-user foo= --map-uid 1000=1042 /x/latest/y
Restoring: 97, done.
# ls -ln dest/y
-rw-r----- 1 1042 1007 3610 Nov 4 11:31 yUma maneira alternativa de fazer o mesmo anulando usuários/grupos universalmente com --numeric-ids:
# bup restore -C dest --numeric-ids --map-uid 1000=1042 /x/latest/y
Restoring: 97, done.bup-save(1), bup-ftp(1), bup-fuse(1), bup-web(1)
Parte do pacote bup(1).
Avery Pennarun apenwarr@gmail.com.