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

0

Nos últimos anos (desde ~ 2000), tenho andado a mover e a copiar 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 veio ao meu conhecimento que alguns arquivos RAR, alguns executáveis (que são arquivos compactados na verdade) e talvez outros arquivos que eu ainda não notei, são corruptos. 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, eu verifiquei a integridade dos arquivos rar no meu servidor de arquivos linux usando find junto com o comando:

unrar t <rar files>

Isso é legal, mas eu não posso checar toda a integridade dos meus arquivos assim, muito menos todos os meus outros arquivos (documentos, fotos, MP3s, WAVs, ZIPs, a lista é infinita)

Eu 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 muito 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 problema enorme 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 outro) que podem rapidamente localizar e usar entradas indexadas dos arquivos?

    
por nass 02.01.2013 / 18:35

1 resposta

2

As somas de verificação de

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

Além disso, os formatos de arquivo RAR , ZIP e 7Z devem conter a soma de verificação CRC32 de todos os arquivos armazenados nela. 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 do CRC32 para cada arquivo no arquivo.

Além disso, as ferramentas de arquivamento devem fornecer a opção de gerar um arquivo .sfv ao criar um archive, que é um CRC32 adicional do archive 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, poderá usar uma ferramenta especializada para verificar se a cópia foi bem-sucedida e correta. No Windows, uso TeraCopy - basta ativar 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.

    
por 02.01.2013 / 18:42