Como verificar a integridade do arquivo entre duas versões do mesmo arquivo?

Como verificar a integridade do arquivo entre duas versões do mesmo arquivo?

Nos últimos anos (desde aproximadamente 2000), tenho movido e copiado dados entre discos de vez em quando. Os dados são MP3, aplicativos, vídeos, backups, e-mails, um pouco de tudo e foram movidos/copiados entre vários discos (e matrizes de disco!) e entre vários sistemas de arquivos FAT, NTFS, ReiserFS, Ext3, Ext4, jfs…

Recentemente, percebi que alguns arquivos RAR, alguns executáveis ​​(que na verdade são arquivos compactados) e talvez outros arquivos que ainda não percebi estão corrompidos. Não sei se existe um padrão aqui apenas entre arquivos compactados. Presumo que não esteja confinado apenas lá.

Para começar, verifiquei a integridade dos arquivos rar em meu servidor de arquivos Linux usando find junto com o comando:

unrar t <rar files>

Isso é legal, mas não consigo verificar a integridade de todos os meus arquivos assim, muito menos de todos os meus outros arquivos (documentos, fotografias, MP3s, WAVs, ZIPs, a lista é interminável, claro).

Gostaria de verificar todos os arquivos de várias maneiras.

  1. A verificação do sistema de arquivos é obviamente boa, mas não pode ajudar se os dados já estavam corrompidos antes de serem copiados no disco em que residem atualmente, certo? o sistema de arquivos atual é JFS.

  2. O segundo nível de verificação poderia ser somas de verificação MD5? Tenho backups de todos os meus dados e poderia tentar combinar somas de verificação, mas os arquivos corrompidos me forneceriam somas de verificação diferentes? Isso ainda não resolve o problema se um arquivo estiver corrompido antes da última cópia dos meus dados.

  3. O que mais eu poderia verificar para ter um pouco de tranquilidade?

  4. Há um grande problema ao comparar meus dados com meus backups; como acontece com tudo que está vivo, meus dados “mudaram” ao longo do tempo e os backups são instantâneos no tempo que nunca foram alterados depois. Por um lado, a estrutura de diretórios mudou, os arquivos foram obviamente excluídos ou transferidos para outros locais. Obviamente será uma bagunça usar o comando findpara combinar um arquivo entre a árvore de backup e a árvore atual!

Alguém já lidou com algo semelhante e pode ter scripts (usando localizar ou não) que podem localizar e usar rapidamente entradas indexadas dos arquivos?

Responder1

MD5/ SHAchecksums são o padrão ouro para verificar a integridade dos arquivos atualmente. Se você tiver os originais a partir dos quais deseja criar as somas de verificação, ou já tiver as somas de verificação, esse seria omais completomaneira de verificar o conteúdo dos arquivos. No entanto, isso pode ser entediante se você tiver tantos arquivos quanto sugere.

Além disso, os formatos de arquivo RAR, ZIPe 7Zdevem conter a soma de verificação CRC32 de todos os arquivos armazenados nele. Isto é mais fraco (ou seja, é mais provável que dados corrompidos não sejam detectados) do que MD5 ou SHA, mas ainda pode detectar se há corrupção ao extrair um arquivo, o que significa que o arquivo está danificado. Eles são verificados automaticamente sempre que você extrai um arquivo de um arquivo. unrar -t <rar files>está basicamente testando as somas de verificação CRC32 para cada arquivo no arquivo.

Além disso, as ferramentas de arquivamento devem oferecer a opção de gerar um .sfvarquivo ao construir um arquivo, que é um CRC32 adicional do arquivo como um todo. Você pode usar isso para verificar ainda mais a integridade de um arquivo.

Se estiver copiando arquivos de um sistema de arquivos para outro, você pode usar uma ferramenta especializada para verificar se a cópia foi bem-sucedida e correta. Para Windows que eu uso TeraCopy- basta ativar a opção 'verificar' antes de iniciar a cópia, e o TeraCopy relerá os arquivos copiados para verificar se eles foram realmente gravados no disco corretamente em seu novo local.

informação relacionada