bup-restore - manual de referência, opções, exemplos de comandos


NOME

bup-restore - extrair arquivos de um conjunto de backup

SINOPSE

bup restore [-r host:[path]] [--outdir=outdir] [--exclude-rx pattern] [--exclude-rx-from filename] [-v] [-q] <paths...>

DESCRIÇÃO

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:

branch

o nome do conjunto de backup do qual restaurar; isso corresponde à opção --name (-n) para salvar bup.

revision

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.

some/where

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.

OPÇÕES

-r, --remote=host:path

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.

-C, --outdir=outdir

crie e mude para o diretório outdir antes de extrair os arquivos.

--numeric-ids

restaurar IDs numéricos (usuário, grupo, etc.) em vez de nomes.

--exclude-rx=pattern

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:

/foo$

exclua qualquer arquivo chamado foo

/foo/$

excluir qualquer diretório chamado foo

/foo/.

excluir o conteúdo de qualquer diretório chamado foo

^/tmp/.

excluir o conteúdo de /tmp no nível raiz, mas não o próprio /tmp

--exclude-rx-from=filename

read –exclude-rx patterns from filename, um padrão por linha (pode ser repetido). Ignore linhas completamente vazias.

--sparse

gravar dados de saída esparsamente quando razoável. Atualmente, razoável significa apenas “pelo menos sempre que houver 512 ou mais zeros consecutivos”.

--map-user old=new

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.

--map-group old=new

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.

--map-uid old=new

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.

--map-gid old=new

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.

-v, --verbose

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.

-q, --quiet

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.

EXEMPLOS

Crie um conjunto de backup de teste simples:

$ bup index -u /etc
$ bup save -n mybackup /etc/passwd /etc/profile

Restaurar 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 passwd

Restaurar 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/profile

Restaure 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/profile

Restaure 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/profile

Restaurar 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-tmp

Restaurar 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 y

Restaurar 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 y

Uma 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.

VEJA TAMBÉM

bup-save(1), bup-ftp(1), bup-fuse(1), bup-web(1)

BUP

Parte do pacote bup(1).

AUTORES

Avery Pennarun apenwarr@gmail.com.