Existe um comando de cópia e verificação no Ubuntu / Linux?

23

Faço backup de todas as minhas fotos digitais para alguns lugares. Eu tenho usado o comando cp, mas - dado o valor pessoal - começaram a se perguntar se existe uma maneira mais confiável. Eu não sou estranho para Linux, Bash, Perl, etc, então eu poderia escrever algo para copiar e comparar hashes md5, mas eu queria saber se algo já existe (reinvenção, rodas e o que não).

A maior parte do meu googling para copy e (verify | valid | check | hash | confirm) ativa o rsync. No entanto, tanto quanto eu posso dizer, o rsync usa apenas hashes para ver se um arquivo precisa ser atualizado. Ele não executa uma comparação de hash posteriormente.

Para este uso, especificamente, os arquivos são binários e tipicamente 8-10MB. Quaisquer recomendações para utilitários ou orientação para soluções DIY seriam muito apreciadas.

    
por N13 05.12.2010 / 03:55

5 respostas

19

De man rsync , sob -c opção:

-c, --checksum: ignorar com base na soma de verificação, não na mod-time & tamanho

Note that rsync always verifies that each transferred file was correctly reconstructed on the receiving side by checking a whole-file checksum that is gener‐ ated as the file is transferred, but that automatic after-the-transfer verification has nothing to do with this option’s before-the-transfer "Does this file need to be updated?" check.

    
por 05.12.2010 / 04:02
4

Vários anos atrás eu tive as mesmas exigências que você. A solução que escolhi foi usar o ZFS por meio do driver ZFS-FUSE no meu servidor de armazenamento. Meu pensamento era que minhas fotos pessoais, documentos digitalizados e outros arquivos similares eram coisas que eu posso acessar apenas ocasionalmente, então pode ser um tempo muito longo, digamos um ano ou mais, antes de eu perceber que um arquivo foi corrompido devido a um erro de drive ou algo parecido.

Nesse momento, todas as cópias de backup que eu tenho podem ser a versão do arquivo corrompida.

O ZFS tem um benefício sobre o RAID-5, pois pode detectar e reparar erros nos dados armazenados nos discos individuais, mesmo que as unidades não relatem um erro de leitura durante a leitura dos dados. Ele detectará, por meio de somas de verificação, que um dos discos retornou informações corrompidas e usará os dados de redundância para reparar o disco.

Devido à forma como a soma de verificação no ZFS é projetada, senti que podia confiar nela para armazenar dados usados com pouca frequência por longos períodos de tempo. Toda semana eu corro um "zpool scrub" que passa e relê todos os dados e verifica checksums.

O ZFS-FUSE se apresentou muito bem nos últimos anos.

No passado distante, para um cliente, implementei um sistema de banco de dados que armazenava informações de soma de verificação em todos os arquivos armazenados em um diretório específico. Em seguida, tive outro script que seria executado periodicamente e verificar o arquivo contra a soma de verificação armazenada no banco de dados. Com isso, podemos detectar rapidamente um arquivo corrompido e restaurar a partir de backups. Nós estávamos basicamente implementando os mesmos tipos de verificações que o ZFS faz internamente.

    
por 05.12.2010 / 09:24
1

Eu encontrei este utilitário (Linux e Windows) que faz exatamente o que você quer (cópia com hash + verificação de hash com log): link

A única desvantagem é que ela existe apenas como GUI (sem acesso à linha de comando)

Since v1.5.0, a selected source folder can be hashed, then copied & reconstructed to a destination folder where the content is again hashed for verification. Since 1.5.5, selected file masks can be used, too (*.doc; *.xls etc).

    
por 29.05.2013 / 18:59
1

link Ele estende o Linux cp & mv com verificação de soma de verificação

    
por 07.10.2014 / 20:12
0

se você estiver copiando o arquivo localmente (como está implícito em sua referência a cp em vez de scp etc), apenas cmp dos arquivos de origem e destino ... mas, realisticamente, se cp isn Emitindo algum tipo de erro (seja na linha de comando ou no valor de retorno da execução), não há razão para acreditar que não está funcionando.

Se você realmente quiser um backup legitimamente redundante, considere uma solução remota como o dropbox .

    
por 05.12.2010 / 06:15

Tags