Solução de backup Linux unidirecional de alta transferência?

1

Eu tenho o que é aparentemente um requisito de backup um pouco incomum:

Eu tenho acesso físico a ambos os discos, e a transferência sempre vai para um lado. Eu quero replicar completamente o primeiro disco para o segundo e depois atualizá-lo manualmente uma vez por mês.

Eu vi este tópico: link , aqui é onde minhas necessidades diferem.

Ambos os discos são USB e existe a possibilidade de que seus locais de montagem mudem de tempos em tempos. Eu preciso ser capaz de especificar um diretório de origem (/ media / A) e um destino (/ media / B) e ter uma cópia para B sem simplesmente começar do zero cada vez, com o resultado final sendo B e A idênticos. Eu não preciso de alterações incrementais no estilo máquina do tempo, não quero tar ou criptografar nada, não preciso enviar isso através de uma rede.

Pensamentos? Estou executando o Ubuntu 10.04.

    
por hewhocutsdown 17.07.2010 / 16:32

7 respostas

8

O Rsync é um utilitário muito bom para isso ... Especificamente:

   rsync -Pav --delete --force-delete /media/A/ /media/B/

(observe as barras finais)

   man rsync 

lhe dará mais informações

    
por 17.07.2010 / 16:41
2

Eu recomendo o utilitário rsync para este propósito.

    
por 17.07.2010 / 16:34
0

rsync deve ser adaptável às suas necessidades. Basta fornecer os diretórios de origem e destino e o resto.

    
por 17.07.2010 / 16:34
0
cp -au /media/A/* /media/B

parece que deveria ser suficiente. Alguém com ideias mais brilhantes? Objeções?

    
por 17.07.2010 / 16:37
0

rsync seria melhor trabalhar como os outros têm mostrado acima, uma vez que irá atualizar automaticamente. Você também pode usar dd para copiar os dados do disco brutos de um disco para outro ( "clonagem" do disco), que seria mais fácil de implementar.

    
por 17.07.2010 / 16:41
0

Eu recomendo uníssono. Link da página inicial

Eu o uso para sincronizações diárias entre meu computador doméstico e laptop, a sincronização unidirecional será ainda mais fácil.

A configuração será muito simples:

root = /media/A
root = /media/B

Se /media/b estiver vazio, a primeira vez que ele será propagado com o conteúdo de /media/A .

Mais tarde, se algo mudar em /media/A , o uníssono alterará /media/B para ser idêntico a /media/A . Também funcionará de outra maneira.

    
por 17.07.2010 / 16:42
0

Se eles são locais e rápidos e você deseja as alterações mais precisas, use dd para copiar tudo. Se você estiver executando isso interativamente, você pode usar pv para obter uma boa barra de progresso. Quando você fizer isso, verifique se o disco de destino não está montado.

Para lidar com o fato de que os discos podem ser montados em pontos diferentes, eu os acessaria por seu ID, em vez de seu nome de dispositivo temporário.

Então, resumindo:

umount /dev/disks/by-id/blah-blah pv < /dev/disks/by-id/ata-Patriot_Torqx_128GB_SSD_blah > /dev/disks/by-id/blah-blah

O bom é que isso copiará o gerenciador de inicialização, todas as partições, etc. Uma desvantagem é que, se o sistema de arquivos ficar corrompido, a corrupção se propagará. Mas presumivelmente você tem outros backups para lidar com a necessidade de voltar no tempo.

Para responder a algumas das outras, porque ainda não posso comentar:

O problema com o "cp" de Carl é que ele não irá deletar arquivos deletados.

O problema com rsync -Pav é que ele não propagará hardlinks, mas você pode adicionar -H para fazer isso.

Eu amo o Unison, mas não é uma boa escolha aqui porque ele grava tudo em diretórios temporários antes de movê-los para o lugar, portanto, pode não funcionar em discos quase cheios. Ele faz uma varredura inicial completa, então ele tenderá a ser mais lento. E mantém algumas informações contábeis que você não precisa para sincronizações unidirecionais.

    
por 21.07.2010 / 11:25