Backup de um diretório para um destino que já possui um backup mais antigo?

0

Eu gostaria de fazer backup de algum diretório no meu laptop para um disco rígido externo.

O destino no disco rígido externo já tem um backup antigo do diretório no meu laptop.

  1. Eu queria saber como posso atualizar o backup no meu disco externo dirigir? Por exemplo, o seguinte comando funcionará como esperado?

    rsync -a --delete  /path/to/source/dir  /path/to/dest/dir
    

    funciona igual ao primeiro rm -r /path/to/dest/dir/* e depois rsync -a /path/to/source/dir /path/to/dest/dir ?

  2. Como posso fazer com que rsync crie o novo backup mais rapidamente sem fazer erros, tirando proveito do backup mais antigo no destino (alguns arquivos podem ter sido alterados desde o último backup, mas mais arquivos não têm)? Outra razão para aproveitar o backup mais antigo é que meu disco rígido externo não tem espaço suficiente para realizar um novo backup sem remover nada.

Obrigado.

    
por Tim 13.05.2018 / 23:44

2 respostas

1
  1. How can I make rsync create the new backup faster without making mistakes, by taking advantage of the older backup on the destination (some files might have been changed since the last backup, but more files haven't)?

Fazer o backup com rsync faz isso por padrão, se você passar -a (e obter os caminhos certos, como a resposta do @xenoid). E você quer passar -a de qualquer maneira, então está tudo bem. A razão específica é um pouco sutil:

Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time.

Se o rsync achar que um arquivo não precisa ser transferido, ele não será transferido. E isso funciona porque -a implica essa opção:

    -t, --times                 preserve modification times

, então o horário da última modificação será o mesmo no arquivo de backup, como está no arquivo original.

without making mistakes

Apenas não falsifique rsync out modificando o conteúdo dos arquivos e, em seguida, redefinindo o horário da última modificação :-). Caso contrário, esse arquivo será ignorado.

Eu não ouvi falar disso sendo um problema, então eu não me preocuparia com isso. É comum usar rsync para backups básicos dessa maneira.

Espero que seja mais provável que você encontre outras limitações. Ou seja Se você fizer o backup de $ HOME sem usar os instantâneos do sistema de arquivos, provavelmente o perfil do Firefox estará sendo modificado ao mesmo tempo em que o backup é executado e você não obterá um perfil de trabalho consistente do firefox no backup. Ou que você queira recuperar um arquivo excluído / sobrescrito, mas como você não está mantendo nenhum backup mais antigo, ele já pode ter sido excluído / substituído no backup.

    
por 15.05.2018 / 00:04
2

Sim, rsync é uma boa solução, mas é melhor usá-la (observe as barras finais):

rsync -a --delete  /path/to/source/dir/  /path/to/dest/dir/

Para citar man rsync :

A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination. You can think of a trailing / on a source as meaning "copy the contents of this directory" as opposed to "copy the directory by name"[...]

Com --delete você obtém o espelhamento (exatamente os mesmos arquivos), sem ele você obtém um backup aditivo (os arquivos excluídos na origem são mantidos na cópia).

O perigo de --delete é que, se você direcionar o diretório errado, muitos arquivos podem ser excluídos, portanto, melhor restringir seu uso a scripts bem testados ou usar -n / --dry-run para verificar primeiro o que aconteceria .

    
por 14.05.2018 / 09:11