Embora você possa criar um script rápido que calcule hashes MD5 individuais para arquivos individuais em um diretório, a melhor maneira de fazer isso seria usar uma ferramenta chamada md5deep
, que calculará recursivamente os hashes de todos os arquivos em um diretório e, em seguida, imprimi-los em um arquivo. Ele pode então ser usado em outro diretório, pegando o primeiro arquivo de hash como entrada e fornecendo uma lista de arquivos diferentes entre os dois diretórios.
Então, tomando o seu exemplo, você seguiria esse processo:
-
Calcule os hashes do diretório necessário no Servidor A:
md5deep -r /opt/foo/ > file_hashes.txt
-
Copie o arquivo file_hashes.txt
no servidor B para comparação.
-
Calcule hashes do diretório necessário no Servidor B, mas levando os hashes de arquivo do Servidor A como um arquivo de entrada usando o sinalizador -x
para mostrar apenas arquivos diferentes:
md5deep -x file_hashes.txt -r /opt/foo/
O conjunto de ferramentas md5deep faz parte do sistema de gerenciamento de pacotes da maioria das distros, e o melhor é que ele suporta vários algoritmos de hash diferentes, não apenas o MD5. Então, se você é paranóico sobre colisões, você tem várias alternativas disponíveis. As seguintes ferramentas fazem parte do md5deep, cada uma fornecendo um algoritmo alternativo de hash:
md5deep - Compute and compare MD5 message digests
sha1deep - Compute and compare SHA-1 message digests
sha256deep - Compute and compare SHA-256 message digests
tigerdeep - Compute and compare Tiger message digests
whirlpooldeep - Compute and compare Whirlpool message digests