Linuxで対象ディレクトリ内のファイルが一致するか、再帰的に比較する
冗長化している2台のサーバで、同一のファイルを配置しています。 それらのファイルが全て一致しているか比較する方法を調査した結果です。
前提
- 対象とするサーバをA・Bとする
- 対象とするディレクトリを/hoge/fugaとする
方法
md5sumのハッシュ値を使用します
Aでハッシュ一覧を作成し、Bに転送
# cd /hoge/fuga
# find . -type f -exec md5sum {} \; > /tmp/AcheckSum.hash
# scp /tmp/AcheckSum.hash user@B:/tmp
BでAから転送されたハッシュ値を元に比較
# cd /hoge/fuga
# md5sum -c /tmp/AcheckSum.hash
結果、以下のように出力
[user@B fuga]# md5sum -c /tmp/AcheckSum.hash ./fileA: 完了 ./fileB: 失敗 ./fileC: 完了 ./fileD: 完了 md5sum: WARNING: 1 of 4 computed checksums did NOT match