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


Nos últimos anos (desde ~ 2000), tenho me movido e copiado dados entre discos de vez em quando. Os dados são MP3, aplicativos, vídeos, backups, e-mails abit de tudo e eles 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, chegou ao meu conhecimento que alguns arquivos RAR, alguns arquivos executáveis ​​(que são arquivos compactados na verdade) e talvez outros arquivos que eu ainda não notei, estão corrompidos. Não sei se há um padrão aqui apenas entre os arquivos compactados. Eu suponho que não está confinado apenas lá.

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

unrar t <rar files>

Isso é bom, mas, eu não posso verificar todos os meus arquivos integridade como este, e muito menos todos os meus outros arquivos (docs, fotografias, MP3s, WAVs, ZIPs, a lista é claro que é interminável)

Eu gostaria de verificar todos os arquivos de várias maneiras.

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

  2. O segundo nível de verificação poderia ser checksums MD5? Eu tenho backups de todos os meus dados e eu poderia tentar corresponder as somas de verificação, mas os arquivos corrompidos me davam checksums 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 estar verificando para obter alguma paz de espírito?

  4. Há um enorme problema ao comparar meus dados com meus backups; como com tudo vivo, meus dados "mudaram" ao longo do tempo e os backups são instantâneos em tempo que nunca mudaram depois. Por um lado, a estrutura do diretório mudou, os arquivos foram obviamente excluídos ou transferidos para outros locais. Obviamente, será uma bagunça usando o comando find para corresponder um arquivo entre a árvore de backup e a árvore atual!

Então, alguém lidou com algo semelhante e pode ter scripts (usando o locate ou outros) que podem rapidamente localizar e usar entradas indexadas dos arquivos?


0


origem




Respostas:


MD5/SHA checksums são o padrão ouro para verificar a integridade dos arquivos nos dias de hoje. Se você tem os originais dos quais criar as somas de verificação, ou já tem as somas de verificação, isso seria o mais completo maneira de verificar o conteúdo dos arquivos. Isso pode, no entanto, ser tedioso se você tiver tantos arquivos quanto parece sugerir.

Além disso, o RAR, ZIPe 7Z formatos de arquivo devem conter a soma de verificação CRC32 de quaisquer arquivos armazenados dentro. Isso é mais fraco (ou seja, é mais provável que dados corrompidos não sejam detectados) do que o MD5 ou o SHA, mas ainda é possível 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> basicamente é apenas testar 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 .sfv arquivo 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 você estiver copiando arquivos de um sistema de arquivos para outro, pode usar uma ferramenta especializada para verificar se a cópia foi bem-sucedida e correta. Para o Windows eu uso TeraCopy - apenas ative a opção 'verify' 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.


2



Oi! obrigado por esclarecer Q2, vou olhar para as opções de verificação em copiar no linux (Como isso é atualmente o que o meu servidor está executando). - nass
Sem problemas! Você pode ter mais sorte em dividir suas subquestões em questões separadas neste site, onde elas podem ser focadas em vez de serem agrupadas. Q3 não é uma questão que realmente se encaixa aqui (é mais uma expedição de pesca, considerando que este site é projetado para questões específicas), mas Q4 é algo que poderia ser feito por si só se já não foi solicitado aqui. - Darth Android