backups rsync diários com links físicos, somas de verificação e um novo computador

2

Eu faço backup do meu laptop em um desktop do Fedora diariamente usando o rsync com hard links. Isso funcionou muito bem por quase um ano.

Adquiri recentemente um novo computador, transferi os meus dados e gostaria de continuar a fazer o backup deste computador diariamente.

No entanto, devido à transferência de dados do laptop antigo para o novo laptop, os timestamps obviamente mudaram e, assim, farão com que meu backup rsync diário transfaça novamente todos os dados.

Eu pensei que adicionando o switch -c (checksum) ao meu backup rsync, ele corresponderia os arquivos com base na soma de verificação, em vez de timestamp e size, e transferirá apenas os arquivos que são diferentes ou não estão presentes. Isso pareceu funcionar, mas ao examinar o novo backup, os links físicos não estão sendo criados e parece que os arquivos que devem estar com link físico estão sendo copiados para o novo diretório de backup do diretório de backup anterior no servidor de backup. Este é um comportamento muito peculiar para mim, e estou tendo dificuldade em descobrir por que isso está ocorrendo. Checksums correspondem a arquivos que eu acho que devem estar com link fixo.

Examinei a página de manual do rsync e o Google deu alguns passos e não consegui encontrar nada para entender melhor esse comportamento.

    
por user75058 19.03.2011 / 07:08

2 respostas

1

Acho que você está entendendo mal as opções de soma de verificação e link físico.

A opção --checksum é descrita na página do manual como "ignorar com base na soma de verificação, não no tempo de modificação e no tamanho". Isso significa que mod time e size são basicamente ignorados, mas faz significar que todos os arquivos são lidos em ambos os lados (porque ele tem que ler o arquivo para computar os checksums.

É importante perceber que o rsync faz isso de qualquer maneira, se o tempo e o tamanho forem diferentes. Portanto, --checksum causa muito mais trabalho (leitura de todos os arquivos) do que sem ele. Sem isso, as somas de verificação são feitas somente se o tempo ou o tamanho da modificação forem diferentes. Como dito acima, isso influencia apenas os arquivos a serem ignorados.

--checksum é normalmente usado em scripts de backup para o equivalente a um "backup completo", digamos uma vez por mês. Isso garante que qualquer arquivo que possa ter sido alterado, mas de forma que o tempo e o tamanho da modificação permaneçam os mesmos, tenha o backup feito corretamente.

A opção --hard-links (da página man): "Isso diz ao rsync para procurar por arquivos com link físico na transferência". Observe que é apenas na transferência, portanto, não detectará que você possui uma cópia existente dos dados no servidor rsync, em outro local e vincula-a de maneira rígida. Apenas vincula arquivos que estão sendo transferidos com outros arquivos que foram transferidos anteriormente.

Portanto, se você quiser que o diretório de backup do novo laptop seja vinculado ao diretório de backup do laptop antigo, será necessário remover o diretório de backup do novo laptop e recriá-lo usando links físicos (por exemplo, cp -al ). No entanto, se todas as datas do arquivo forem alteradas, você provavelmente terá problemas com o rsync transferindo novamente esses arquivos e quebrando esses links físicos. Você provavelmente precisará rsync do laptop para o outro, tomando cuidado para não rsync sobre dados que realmente precisam ser diferentes entre eles. Dessa forma, os arquivos devem ter as mesmas datas e isso fará com que seus backups de rsync sejam mais felizes.

Eu sei que você disse que leu a página do manual, mas eu recomendo que você olhe novamente, especificamente as descrições detalhadas das opções --checksum e --hard-links . Você provavelmente também deve ler sobre a opção --in-place , pois ela pode interagir mal se você estiver tentando preservar hard links.

    
por 19.03.2011 / 13:05
0

- a soma de verificação, como esperado, evita transferir os arquivos e usa o backup existente como referência

- o link-dest vinculará seu novo backup ao antigo, reduzindo o uso do disco.

Mas ... mas se os timestamps dos arquivos originais forem diferentes dos backups mais antigos, os links físicos serão impossíveis (dois hard links não podem ter timestamps, propriedades ou permissões diferentes. Assim, você não terá links físicos.

a solução é usar fdupes -r1L / folder1 / folder2 ele substituirá os arquivos folder2 por hard links, com a única condição de que o conteúdo seja idêntico.

BTW, veja também meu shell script para fazer backups de captura instantânea de seu sistema de arquivos completo usando rsync com hard-links entre os backups (deduplicação) para ter um backup completo com menos espaço em disco como se fosse um incremental. Ele vem com configurações de ajuste como assinatura de integridade MD5, proteção 'chattr', regras de filtro, cota de disco, política de retenção com distribuição exponencial (rotação de backups enquanto salva backups mais recentes que os antigos). está disponível gratuitamente: link

felicidades Francois Scheurer

    
por 17.09.2012 / 11:54